渲染子模板的适当方式是什么?
那有什么区别呢?这两种方法似乎都适合我。
为什么@Html.RenderPartial()
不再工作?
发布于 2011-06-16 01:25:53
Html.Partial("MyView")
将"MyView“视图呈现给MvcHtmlString
。它遵循视图查找的标准规则(即检查当前目录,然后检查Shared
目录)。
Html.RenderPartial("MyView")
除了将其输出直接写入响应流之外,它与Html.Partial()
的功能相同。这样效率更高,因为视图内容不会在内存中进行缓冲。但是,因为该方法不返回任何输出,所以@Html.RenderPartial("MyView")
将不起作用。您必须将调用包装在代码块中:@{Html.RenderPartial("MyView");}
。
RenderPage("MyView.cshtml")
将指定的视图(由路径和文件名标识,而不是由视图名称标识)直接呈现给响应流,如Html.RenderPartial()
。通过将其作为第二个参数包括在内,您可以向视图提供任何您喜欢的模型
RenderPage("MyView.cshtml", MyModel)
发布于 2011-03-19 04:58:09
我更喜欢
@RenderPage("_LayoutHeader.cshtml")
结束
@{ Html.RenderPartial("_LayoutHeader"); }
这仅仅是因为它的语法更简单,可读性更好。除此之外,在功能方面似乎没有任何区别。
编辑: RenderPartial的一个优点是你不必指定完整的路径或文件扩展名,它会自动搜索公共位置。
发布于 2014-08-13 05:43:53
我们也可以使用局部视图传递模型。@Html.Partial("MyView","MyModel");
https://stackoverflow.com/questions/4501736
复制相似问题