0

在一个页面上,我以这种方式呈现其他视图:

<% Html.RenderPartial("Angebotspruefung", new ViewDataDictionary {{ "OpportunityEditModel", Model }} }); %>

在渲染视图上,我以这种方式检索此模型:

<% 
    OpportunityDetailsEditModel model = (OpportunityDetailsEditModel)ViewData["OpportunityEditModel"];    
%>

并且有非常非常奇怪的东西,我可以访问属性<%= model.Property %>但是 lambda 不起作用,所以这不起作用

<%= Html.HiddenFor(m => m.Property) %>
4

1 回答 1

1

Lamda 表达式助手仅适用于强类型视图。除了传递 ViewData,使您的局部视图具有强类型并将对象模型传递给 Html.RenderPartial。然后,您将拥有 lambda 的预期功能。

 <%= Html.HiddenFor(m => m.Property) %>

在上面的这段代码中,m 应该是其视图中的模型,因此助手尝试渲染控件,但其视图没有模型,它由对象手动设置,然后控件渲染的反射失败。

编辑:

RenderPartial 有一个重载,使您能够将模型作为参数传递,请看这里:

部分渲染

希望对您有所帮助!

于 2013-04-30T12:32:25.450 回答