• 乡下人重拾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;

    以HTML-encoded 字符串展示 
            结果以HTML-encoded 字符串展示 
            返回的是string类型,所以结果可以存储在变量里 
            使用简单,无需创建Action 
            格式如:@Html.Partial("_Comments") 

    4.   @Html.Action()

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

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

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

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

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

            直接展示为HtmlString 
            需要创建对应的child action 
            可以缓存partial view 
            格式如:@{Html.Action("Category","Home");} 

    5.   @Html.RenderPartial()

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

      直接加载视图文件内容;

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

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

    将分部视图直接写入响应输出流,所以只能放在代码模块中,不能放在表达式中。 
            这个方法会直接将结果写入到当前请求的http response数据流中,这以为着它使用了和当前webpage/template使用的相同的TextWrite对象 
            方法没有返回值 
            不需要创建action,使用简单 
            格式如下:@{Html.RenderPartial("Links")};"Links"就是分部视图页的名称 
            这个方法比Partial方法更快,因为它直接将结果系统到当前响应的数据流中 

    6.   @Html.RenderAction()

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

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

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

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

      将分部视图直接写入响应输出流。 ;

            和上个一样,执行结果会直接写入当前响应的数据流中 
            需要创建child action方法 
            格式如:@{Html.RenderAction("Category","Home");} 
            如果你想缓存partial view,这是最好的选择 
            这个方法比Action()方法快,基于第一条原因

  • 相关阅读:
    Win7旗舰版中的IIS配置asp.net的运行环境
    选中弹出层中内容
    在windows server 2003中配置ipad測試環境
    TFS 2012 Preview Quickstart
    Windows Azure Quick Start Hello World
    2013总结 和2014期望
    一个简单的.net写日志方法 可能的改进点
    基于Visual Studio的软件生命周期管理和持续交付 (二) 采用成熟度
    关于加班的那些事
    基于Visual Studio的软件生命周期管理和持续交付 (一) 前言
  • 原文地址:https://www.cnblogs.com/ingstyle/p/10453244.html
Copyright © 2020-2023  润新知