你的位置:首页 > ASP.net教程

[ASP.net教程]MVC 分部视图


1,在视图上面请求分部视图:

首先新建一个控制器,然后未默认的Index方法,创建视图,在这个视图里,请求分部视图

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MVCStatrApp.Controllers{  public class PartController : Controller  {    // GET: Part    public ActionResult Index()    {      return View();    }    /// <summary>    /// 分部视图方法    /// </summary>    /// <returns></returns>    public ActionResult _PartialTest()    {      return View();    }  }}

在列表页面Index中:

@{  ViewBag.Title = "Index";}@section scripts{  <script type="text/javascript">    window.onload = function () {      //获取按钮,为其添加一个点击方法      document.getElementById("btnLoadPart").onclick = function () {        //1.创建一个异步对象        var xhr = new //2.调用        xhr.open("get", "/Part/_PartialTest", true);        //因为是get方式的异步请求,我们为了不使用缓存,就使用这句        //第二个参数随便给一个值        xhr.setRequestHeader("If-Modified-Since", 0)        //3。设置        xhr.onreadystatechange = function () {          if (xhr.readyState == 4 && xhr.status == 200)          {            //取出数据            var xhrNew = xhr.responseText;            //取玩数据,放到DIV中            document.getElementById("div1").innerHTML = xhrNew;          }        };        //发送        xhr.send(null);      };    };  </script>  }<h2>Index</h2><div id="div1"></div><input type="button" value="请求分部视图" id="btnLoadPart"/>

分部视图页面:

<table> <tr>   <td>姓名:</td>   <td><input type="text" name="txtName"/></td> </tr>  <tr>    <td>密码:</td>    <td><input type="text" name="txtPwd" /></td>  </tr>  </table>

我们在_ViewStart页面中添加一行代码:

@{  Layout = "~/Views/Shared/_Layout.cshtml";}哇哈哈哈,我是ViewStart页面的内容

然后在Index页面中点击按钮的时候:

可见,请求分部视图的时候,也去查找了_ViewStart页面,我们怎么做到不去加载_ViewStart页面呢?

可以修改分部视图的返回方法:

  /// <summary>    /// 分部视图方法    /// </summary>    /// <returns></returns>    public ActionResult _PartialTest()    {      return PartialView();    }