2012-04-09 48 views
0

我有一個局部視圖以下代碼:在一個局部視圖的形式使用模型數據

@model MyOrganization.MyApp.Models.ProductListing 

@using (Ajax.BeginForm("TagProduct", new AjaxOptions() { UpdateTargetId = "FormContainer" , OnSuccess = "$.validator.unobtrusive.parse('form');" })) 
{ 
<p> 
    @Html.LabelFor(m => m.ModelNumber): 
    @Html.EditorFor(m => m.ModelNumber) 
    <A href="javascript:$('form').submit()">Tag Product with This Model Number</A> 
    @(Html.ValidationMessageFor(m => m.ModelNumber)) 
</p> 
} 

,這種局部視圖獲取被實例化並且它的許多性質由視圖水合的視圖模型那包含此部分視圖。但是,在此處調用提交時,控制器獲取的視圖模型僅具有水合的ModelNumber屬性。所有其他屬性都爲null,就像新的實例是由部分視圖創建的,只有編輯的屬性(ModelNumber)獲取了值。

我知道傳遞給部分視圖的viewmodel實例具有所有其他屬性值,因爲如果我添加@ Html.EditorFor(m => m.SerialNumber),我可以看到包含視圖的SerialNumber值在瀏覽器的文本框中呈現,並且在提交表單時我還會將其返回到控制器中。但是,我不希望在窗體上使用編輯器的SerialNumber屬性 - 我只是希望它在提交時回到控制器中。

我如何,我可以得到整個模型回控制器,因爲它是在傳遞給只改變局部視圖的局部視圖做?

回答

0

當張貼的形式,它創建的任何值您發佈它的模型的新副本。如果你需要其他值,把@ Html.HiddenFor你需要發佈的其他元素。

相關問題