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(); }
原标题:MVC 分部视图
关键词:mvc