Asp.net mvc 3 如何在MVC 3中直接在页面上使用@Html.Partial()

Asp.net mvc 3 如何在MVC 3中直接在页面上使用@Html.Partial(),asp.net-mvc-3,partial-views,partial,Asp.net Mvc 3,Partial Views,Partial,我想使用@Html.Partial(“\u partialView”)在MVC 3中的我的页面上包含一个部分视图 页面和viewmodel都有一个viewmodel;因此,产生以下错误: 传递到字典中的模型项的类型为“[…]页”,但 此词典需要类型为“[…]partialview”的模型项 如何使用@Html.Partial()方法同时保留两个viewmodels 您应该使用允许将模型对象传递到局部视图的 public static MvcHtmlString Partial(

我想使用
@Html.Partial(“\u partialView”)
在MVC 3中的我的页面上包含一个部分视图

页面和viewmodel都有一个viewmodel;因此,产生以下错误:

传递到字典中的模型项的类型为“[…]页”,但 此词典需要类型为“[…]partialview”的模型项

如何使用
@Html.Partial()
方法同时保留两个viewmodels

您应该使用允许将模型对象传递到局部视图的

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

顺便问一下,您真的需要调用
Partial
RenderPartial
更好—它直接写入响应流(与返回字符串的partial相比),因此保留了内存。局部视图可能相当大,因此如果您不是绝对需要它,则使用
Partial
会产生内存开销。

那么,您的意思是我可以只使用以下内容<代码>@Html.RenderPartial(“_partialView”)否,RenderPartial具有允许传递模型的相同重载。你无论如何都应该通过考试。我指的是RenderPartial和Partial之间的内存开销差异-第一次直接写入结果流,最后一次返回必须写入结果流的字符串。@archil关于性能断言,甚至“写入响应流”实际上都缓冲到StringBuilder中,所以它真的不应该有那么大的区别。我会写最干净的代码,只在有可测量的负面影响时才关注性能优化。@marcind我对你的评论感兴趣,并探索了源代码。看起来,你是完全正确的。唯一的一点内存差异可能是,当使用RenderPartial时,字符串缓冲区将被自动GC化,而从Partial返回的结果字符串可能会在内存中停留更长的时间。顺便说一下,RenderPartial比Partial IMHO更干净,因为它不需要第二步写入结果流。@archil In Razor我认为实际上
Partial()
更干净,例如
@Partial(“Foo”)
vs
{RenderPartial(“Foo”);}