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