乡下人重拾MVC——@RenderBody @RenderSection @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction

1.   @RenderBody() 

  代表:是一个占位符,是留给子页面的位置,子页面使用这个模版,子页面中的内容会被放到@RenderBody的位置。合并后当作一个整体加载

2.   @RenderSection(string,boolean) 

  第一个参数是string类型,标明名称;第二个参数是boolean类型,表示子页面是否必须要写它。

  代表:是个占位符,解决了只有一个RenderBody的问题。比如,子页面要引入自己css文件,而@RenderBody写在了模板的<body>的最下面,而css想要加到模板的<head>中,这时候只需要在模板的head中加入 @RenderSection("css",false)  在子页面上加入 : @section css{ //是引用的css }

也可以这样:

//先判断目标页中是否要加载这些片段,再加载
@if(IsSectionDefined("css")) //该值指示是否在页中定义了指定部分
{
    @RenderSection("css")  //将呈现指定部分的内容
}

3.   @Html.Partial()

  返回值类型为MvcHtmlString,是一个字符串;

  直接加载视图文件内容;

  可以直接提供用户控件名作为参数;

  简单的没有任何逻辑的用户控件,推荐使用Partial;

4.   @Html.Action()

  返回值类型为MvcHtmlString,是一个字符串;

  重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传;

  需要有对应的Action,在Action内部返回PartialResult(即return PartialView());

  对于需要设置一些Model的用户控件,推荐使用Action;

  在return PartialView时可以根据不同的场景选择不同的用户控件;

5.   @Html.RenderPartial()

  返回值是void,在方法内部进行输出;

  直接加载视图文件内容;

  可以直接提供用户控件名作为参数;

  简单的没有任何逻辑的用户控件,推荐使用Partial;

6.   @Html.RenderAction()

  返回值是void,在方法内部进行输出;

  重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传;

  需要有对应的Action,在Action内部返回PartialResult(即return PartialView());

  对于需要设置一些Model的用户控件,推荐使用Action;

猜你喜欢

转载自www.cnblogs.com/ingstyle/p/10453244.html