2011-09-01 139 views
0

我想在MVC使用@Html.Partial("_partialView")包括局部视图我的第3页如何使用@ Html.Partial()直接在页面上的MVC 3

无论是页面和视图模型有一个视图模型;因此,产生以下错误:

传递到词典中的模型产品类型“[...]页”的,但 本词典需要类型的模型项“[...] partialview ”。

如何在保留两个视图模型的同时使用@Html.Partial()方法?

回答

1

您应该使用this overload,允许模型对象被传递到局部视图

public static MvcHtmlString Partial(
     this HtmlHelper htmlHelper, 
     string partialViewName, 
     Object model 
    ) 

顺便说一句,你真的需要调用PartialRenderPartial更好 - 它直接写入响应流(与部分返回字符串相比),因此保留内存。部分视图可能非常大,因此如果您不是绝对需要它,那么存在内存开销,请使用Partial

+0

那么,你的意思是我可以改变下面的内容吗? '@ Html.RenderPartial(“_ partialView”);' – Helge

+0

不,RenderPartial有相同的重载,允许模型通过。反正你应该通过模型。我的意思是RenderPartial和Partial之间的内存开销差异 - 首先直接写入结果流,最后返回必须写入结果流的字符串。 – archil

+0

@archil关于你的性能断言,甚至“写入响应流”实际上被缓存到一个StringBuilder中,所以它确实不应该有太大的区别。我会写出最干净的代码,并专注于性能优化,只有在有可测量的负面影响时。 – marcind

相关问题