asp.net mvc View 与PartivalView视图的区别

当我们使用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

原文地址:https://www.cnblogs.com/liujicai/p/9339705.html

时间: 2024-08-26 05:50:43

asp.net mvc View 与PartivalView视图的区别的相关文章

ASP.Net MVC View

ASP.Net MVC View(视图) View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官方默认给出的,其实还支持其它N种视图引擎,甚至你自己都可以写一套视图引擎) View和Action之间数据传递(前后台数据传递) 弱类型 ViewData[""] 动态型 ViewBag //dynamic 动态类型Model             后台:return View(data); //存入 V

ASP.NET MVC传递Model到视图的多种方式总结

ASP.NET MVC传递Model到视图的多种方式总结 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData ViewModel Tuple 场景: 在视图页面,下拉框选择课程触发事件,分别显示老师课程表.学生上课表,如图: 相关的Model: 1 public class Course 2 { 3 public int Id { get; set; } 4 public string Name { get; set; } 5

ASP.NET MVC传递Model到视图的多种方式之通用方式的使用

ASP.NET MVC传递Model到视图的多种方式总结——通用方式的使用 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData ViewModel Tuple 场景: 在视图页面,下拉框选择课程触发事件,分别显示老师课程表.学生上课表,如图: ? 相关的Model: 1 public class Course 2 { 3 public int Id { get; set; } 4 public string Name { get

ASP.NET MVC View使用Conditional compilation symbols

由于View(.cshtml)的运行时编译关系,在项目级别中定义的symbols是无法被直接使用的.需要在Web.config中添加compilerOptions(在View目录下的Web.config添加无效),该设置同样适用于ASP.NET其它技术.假如你需要一个TEST的定义,参考如下: Web.config <system.codedom> <compilers> <compiler language="c#;cs;csharp" extensio

【记录】ASP.NET MVC View 移动版浏览的奇怪问题

ASP.NET MVC View 中的一段代码: <span id="span_Id">@Model.ID</span> 没什么问题吧,浏览器浏览正常,查看元素为: <span id="span_Id">123456</span> 但如果是用手机浏览器,查看元素是这样的: <span id="span_Id"><a href="tel:123456">12

.Net Framework 4.5.1 ASP.NET MVC 5 下新建视图报“错误 运行所选代码生成器时出错 无法检索元数据 没有为该对象定义无参数构造函数”

当在控制器中新建视图的时候,选择的视图界面如下: 执行添加后报如下错误: 错误的内容为: 错误运行所选代码生成器时出错 无法检索"XXX"的元数据没有为该对象定义无参数构造函数 Unable to retrieve metadata for 'XXX'. No parameterless constructor defined for this object. 这个错误一直误导我,以为是模型类的问题,找了半天找不到解决方法,郁闷到死,后来发现是数据上下文的问题. 想到解决方案使用的是D

如何应用ASP.NET MVC中的分部视图

概述: 在ASP.NET Web Form的开发经验中,对于User Control使用比较频繁,可以减少重复的代码,利于页面模块化,这个概念也被引入了ASP.NET MVC.即“分部视图”. 1.创建分部视图: 在解决方案管理器中,找到Views文件夹下的Shared文件夹,右键添加视图,选择创建为分部视图,如图: 2.修改分部视图: 1 <p>分部视图中的p元素</p> 3,在其他视图中引用分布视图: 1 @Html.Partial("~/Views/Shared/I

asp.net mvc 中的部分视图

使用方法:@Html.Action(action, controller)加载局部页面.例如在模板页中使用:@Html.Action("Contact", "Company")在CompanyController中有如下方法:public PartialViewResult Contact() {   return PartialView();} ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,

ASP.NET MVC 之控制器与视图之间的数据传递

今天,我们来谈谈控制器与视图之间的数据传递. 数据传递,指的是视图与控制器之间的交互,包括两个方向上的数据交互,一个是把控制器的数据传到视图中,在视图中如何显示数据,一个是把视图数据传递到控制器中, 如何在控制器中获取,处理这些数据. ASP.NET MVC 中所有控制器都继承Controller类,而Controller又继承自ControllerBase,而ControllerBase下又包含ViewData以及TempData视图数据字典. 一,使用ViewData传递数据 ViewDat