当我们使用 razor 作为页面引擎时, 它的视图文件扩展名为 cshtml 或者 vbshtml, 而之前作为分部视图的 ascx 文件, 进行 razor 之后, 也是 cshtml, 这与非 razor 引擎有些不同, 在这方面, 官方并没有显式把分部视图与标准视图分开, 有时, 我们在开发时, 可能会出现一些混乱了, 今天主要来说一下, 如何正确的使用分部视图!
分部视图在 action 中返回一定要用 PartialView(), 而不要偷懒使用 View(), 因为, 如果你使用 View() 渲染视图, 系统会认为你是一个标准视图, 会为你加个默认的母板页 (Layout), 除非你显式的设置了 Layout 这个属性.
之前的程序代码:
- public ActionResult PartialLogon()
- {
- return View();// 会认识它的标准视图, 所以会加上默认的 Layout
- }
当返回视图后, 你的分部视图会被加上默认的母板页, 这不是我们希望看到的, 当然有些同学会不先麻烦的在页面上显式的加上 Layout=null
事实上, 如果你正确的返回分部视图, 这行当然是不用加的, 呵呵 .
正确的写法:
- public ActionResult PartialLogon()
- {
- return PartialView();// 会将页面的 Layout 自动设为 null
- }
怎么样, 这回知道 PartialView() 与 View() 真正的区别了吧, 呵呵!
我想这后我们把这两个东西换个名称, PartialView()=> 渲染视图 => 不带 Layout
View()=> 渲染分部视图 => 自动加上 Layout
来源: http://www.bubuko.com/infodetail-2692382.html