首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Razor:@Html.Partial() vs @RenderPage()

Razor:@Html.Partial() vs @RenderPage()
EN

Stack Overflow用户
提问于 2010-12-22 00:49:10
回答 4查看 80.8K关注 0票数 94

渲染子模板的适当方式是什么?

那有什么区别呢?这两种方法似乎都适合我。

为什么@Html.RenderPartial()不再工作?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-16 01:25:53

代码语言:javascript
复制
Html.Partial("MyView")

将"MyView“视图呈现给MvcHtmlString。它遵循视图查找的标准规则(即检查当前目录,然后检查Shared目录)。

代码语言:javascript
复制
Html.RenderPartial("MyView")

除了将其输出直接写入响应流之外,它与Html.Partial()的功能相同。这样效率更高,因为视图内容不会在内存中进行缓冲。但是,因为该方法不返回任何输出,所以@Html.RenderPartial("MyView")将不起作用。您必须将调用包装在代码块中:@{Html.RenderPartial("MyView");}

代码语言:javascript
复制
RenderPage("MyView.cshtml")

将指定的视图(由路径和文件名标识,而不是由视图名称标识)直接呈现给响应流,如Html.RenderPartial()。通过将其作为第二个参数包括在内,您可以向视图提供任何您喜欢的模型

代码语言:javascript
复制
RenderPage("MyView.cshtml", MyModel)
票数 129
EN

Stack Overflow用户

发布于 2011-03-19 04:58:09

我更喜欢

代码语言:javascript
复制
@RenderPage("_LayoutHeader.cshtml")

结束

代码语言:javascript
复制
@{ Html.RenderPartial("_LayoutHeader"); }

这仅仅是因为它的语法更简单,可读性更好。除此之外,在功能方面似乎没有任何区别。

编辑: RenderPartial的一个优点是你不必指定完整的路径或文件扩展名,它会自动搜索公共位置。

票数 17
EN

Stack Overflow用户

发布于 2014-08-13 05:43:53

我们也可以使用局部视图传递模型。@Html.Partial("MyView","MyModel");

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4501736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档