RenderPartial RenderAction Partial Action

MVC Razor中有不同的展现partial view的方法,许多开发人员子在选择使用 RenderPartial or RenderAction or
Partial or Action helper 方法时比较困惑,不知该选择哪一个,这篇文章,我向大家介绍一下Html.RenderPartial,
Html.RenderAction, Html.Partial & Html.Action的不同

Html.RenderPartial


  1. 这个方法会直接将结果写入到当前请求的http
    response数据流中,这意味着它使用了和当前webpage/template使用的相同的TextWriter对象

  2. 方法没有返回值

  3. 不需要创建action,使用简单

  4. 如果和partial
    view 对应的view model中,已经存在了partial view展示所需数据,RenderPartial方法会很有用.For
    example :
    blog中,显示一篇文章和它的评论, RenderPartial
    方法会是比较好的选择,既然文章的评论信息已经存在在view model中

    1. @{Html.RenderPartial("_Comments");}

  5. 这个方法比partial
    方法更快,因为它直接将结果系统到当前响应的数据流中


Html.RenderAction


  1. 和上一个一样,执行结果会直接写入当前响应的数据流中

  2. 需要创建child
    action 方法.

  3. 如果partial
    view 的数据独立于对应的view的 viewmodel,则这个方法比较有用,For example :
    Iblog中每个页面都显示不同的类目菜单,我们最好选择使用RenderAction 既然类目数据是由不同的model提供

    1. @{Html.RenderAction("Category","Home");}

  4. 如果你想缓存partial
    view,这是最好的选择。


  5. 这个方法比action方法快,基于第一条原因

Html.Partial


  1. 结果以HTML-encoded
    字符串展示

  2. 返回的是string类型,所以结果可以存储在变量里.

  3. 使用简单,无需创建action

  4. Partial
    method is useful used when the displaying data in the partial view is already
    in the corresponding view model.For example : In a blog to
    show comments of an article, we would like to use RenderPartial method since
    an article information with comments are already populated in the view
    model.

    1. @Html.Partial("_Comments")

Html.Action


  1. 结果直接展示为HtmlString
    .


  2. 需要创建对应的child
    action

  3. 返回字符串,可以存储在变量里.

  4. Action
    method is useful when the displaying data in the partial view is independent
    from corresponding view model.For example : In a blog to show
    category list on each and every page, we would like to use Action method since
    the list of category is populated by the different model.

    1. @{Html.Action("Category","Home");}

  5. 可以缓存partial
    view.

转载自:http://blog.csdn.net/kufeiyun/article/details/9377065

RenderPartial RenderAction Partial Action,布布扣,bubuko.com

时间: 2024-08-08 17:45:40

RenderPartial RenderAction Partial Action的相关文章

Html.Partial 和 Html.RenderPartial 、Html.Action 和 Html.RenderAction区别

Html.Partial 和 Html.RenderPartial不需要为视图指定路径和文件扩展名.因为运行时定位部分视图与定位正常视力使用的逻辑相同.RenderPartial不是返回字符串,而是直接定写入响应输出流.必须把RenderPartial放入代码块中.如:@{Html.RenderPartial("LeftMenu");}@Html.Partial("LeftMenu") Html.Action 和 Html.RenderAction可以指定视图和控制

MVC部分视图的使用(Html.Partial/RenderPartial、Html.Action/RenderAction、RenderPage)

ASP.NET MVC 里页面往往会有许多重用的地方,可以进行封装重用. 使用部分视图有以下优点: 1. 可以简写代码. 2. 页面代码更加清晰.更好维护. 在视图里有多种方法可以 加载部分视图,包括: Partial() .RenderPartial() . Action() .RenderAction() . RenderPage() 方法 一.Partial与RenderPartial 1.Razor 语法: @Html.Partial() 与 @{Html.RenderPartial()

ASP.NET MVC RenderPartial和Partial的区别

背景:ASP.NET MVC 4.0 @{ Html.RenderPartial(...); } public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName) { htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEn

.net Mvc4 View—布局页与分部页

▲      一.Layout属性     1.1.@RenderPage():渲染制定的页面到占位符.     注意:@RenderPage()可以使用多次,这点与@RenderBody()不同     格式如: @RenderPage("~/Views/Home/Test.cshtml"):则会把Test.cshtml页面内容加载到指定位置     1.2.@RenderBody():直接渲染整个View到占位符处,不需要原来的<asp:Content/>(呈现子页的主

[转]Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法

Partial 和RenderPartial:这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样Partial 回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上 @Html.Partial("ViewName") RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View @{            Html.RenderPartial("V

Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法【转发】

Partial 和RenderPartial:这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样Partial 回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上 @Html.Partial("ViewName") RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View @{            Html.RenderPartial("V

Asp.Net MVC3.0 Partial RenderPartial Action RenderAction 区别和用法

本人写的博文不多,专业知识不强,以下纯属于个人笔记.如有不对,还请各路大拿,拍砖指导,谢谢! 区别: 1.Partial 与 RenderPartial 两个方法性质基本一样,只是把一个静态用户控件给嵌入进来. 2.Partial 回传一堆html代码,直接写进到页面上@Html.Partial("ViewName"); 3.RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View @{ Html.RenderPartial("ViewName

部分视图调用方法总结(Action 、 RenderAction 、 Partial 、 RenderPartial)

Action . RenderAction . Partial . RenderPartial 1.Action . RenderAction Action 方法以字符串的形式返回子视图,可以直接被呈现.RenderAction方法在适当的地方呈现子视图. //One alternative (renders a string) = Html.Action("ChildList") %> //Another alternative (renders in place) Html.

@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction [转]

@Html.Action:需要有对应的Action,并且Action方法有返回值.(注:处理完业务逻辑同时,也需要返回所需值) @{Html.RenderAction}:需要有对应的Action,Action方法没有返回值.(注:只处理业务逻辑,不需要返回值) @Html.Partial:    不需要有Action,直接取ViewName对应的页面内容,有返回值.回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上:(注