2013-04-30 47 views
0

在一個頁面上工作,我正在呈現另一種觀點是這樣的:MVC拉姆達不上的RenderPartial

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

和渲染視圖我retrive這個模型是這樣的:

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

,並有某事非常非常wird,我可以存取權限的屬性與<%= model.Property %>但拉姆達簡化版,工作,所以這是不行的

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

不會以什麼方式工作?你有什麼編譯/運行時間錯誤?視圖中是否存在您正在執行「HiddenFor」的模型? – 2013-04-30 12:11:49

+0

編譯沒有問題,只是有空值 – kosnkov 2013-04-30 12:48:46

+0

下面的線程顯示你需要做什麼。 http://stackoverflow.com/questions/6850174/html-hiddenfor-value-property-not-getting-set – 2013-04-30 12:50:58

回答

1

Lamda表達式助手僅適用於強類型視圖。傳遞ViewData的Intead,使您的部分視圖具有強類型並將對象模型傳遞給Html.RenderPartial。然後,您將擁有lambda的預期功能。

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

在上面米此代碼suposed是從它的視圖的模型,所以輔助試圖呈現控件,但它的視圖沒有模型,其設置好的由對象手動創建,然後來自控制渲染的反射失敗。

編輯:

的RenderPartial具有過載,讓你通過模型參數的能力,看看這裏:

RenderPartial

希望其幫助您的!

+0

如何傳遞給partialView對象模型? – kosnkov 2013-04-30 12:43:43

+0

@kosnkov我編輯了評論!所有的信息都在上面!希望它能幫助你! :) – Fals 2013-04-30 12:48:53