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,    ViewEngines.Engines);
}

上面是@{ Html.RenderPartial("_ArticleTable"); } RederPartial对应的方法声明

(1).此方法内调用 htmlHelper.ViewContext.Writer 进行输出, 通俗的理解, Html.RenderPartial方法是直接绚烂模板, 将结果直接Reponse到浏览器, 所以在视图语法中需要用大括号{}”接住”RenderPartial方法的返回值. 所以又有人就这样说:RenderXXX的方法返回值是void, 在方法内部进行输出;

(2).强调一点, RenderPartial带"计算"功能, 可以直接"拿到"父View中传入的model,即不用单独为RenderPartial传入model

@Html.Partial(....)

直接就在chmtl模板页中这么用,无需用大括号{}包住

public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName)
{
    return htmlHelper.Partial(partialViewName, null, htmlHelper.ViewData);
}

public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData)
{
    using (StringWriter writer = new StringWriter(CultureInfo.CurrentCulture))
    {
        htmlHelper.RenderPartialInternal(partialViewName, viewData, model, writer, ViewEngines.Engines);
        return MvcHtmlString.Create(writer.ToString());
    }
}

请注意, Partial方法将结果输出到临时变量StringWriter

时间: 2024-11-02 23:29:41

ASP.NET MVC RenderPartial和Partial的区别的相关文章

简述关于ASP.NET MVC与.NET CORE 的区别

简述关于ASP.NET MVC与.NET CORE的区别1.关于ASP.NET 关于MVC刚开始接触这个技术的时候我经常不理解他们的名字,我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样产生很多为什么,也会误认为认为MVC与ASP.NET完全没有关系,是一个全新的Web开发,深入学习后我才知道事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC.我们可将原来的ASP.NET称为 ASP.NET

[ASP NET MVC] 表单 Partial View / Editor Template 使用抉择

表单 Partial View / Editor Template 使用抉择 前言 最近有不少同事都会问到"为什么在这边要使用Editor Tamplate? 怎么不用Partial View来做?",其实如果想要知道各自适用的时机,首先就必须了解两者差异为何.从以下表格不难发现,两者都是从VIEW中将ViewModel之Boo属性对象传入Partial View / Editor Template,并且都是使用@Html.EditorFor() 方法来产出Html 元素,但最终产出H

[转]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 MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法

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

.NET、C#和ASP.NET,ASP.NET MVC 四者之间的区别

from:http://www.cnblogs.com/wwym/p/5555772.html 经常,会有一些人搞不清楚.NET和c#和ASP.NET这三者之间的关系,她们都是什么呢?他们之间有什么关系呢?今天我简单给大家总结一下吧. 首先:什么是.NET? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台.语言可以是C#,f#,j#,vb.net等等

[Asp.Net] MVC 和Web API 的区别

Asp.net MVC 和web api 的action 在获取从前台传入的数据是有很大不同 前台使用ajax的方式向后台发起post的请求 Content-Type:application/json 使用以下json对象 { "user": { "Username":"xxx", "Password":"xxxx" } } { "Username":"xxx", &

ASP.NET MVC 中 @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction 的区别

1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以这样使用:    @Html.Partial 对应 @{Html.RenderPartial(....);}    @Html.Action 对应 @{Html.RenderAction(....);} 2.Action.RenderAction加载方法的视图,执行Controller → Model → View的顺序,然后把产生的页面带回到原来的View中再回传.而Partial

asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别

转载自 :  <asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别> 先复制过来.. 带Render的方法返回值是void,在方法内部进行输出:不带Render的返回值类型为MvcHtmlString,是一个字符串. Partial和RenderPartial:直接加载视图文件内容:Action和RenderAction:重新执行一次Controller→Model→View的顺序,然后