我在部分视图中有以下代码:
@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 属性水合。所有其他属性都为空,就好像局部视图创建了一个新实例,只有被编辑的属性 (ModelNumber) 获得了一个值。
我知道传递给局部视图的视图模型实例具有所有其他属性值,因为如果我添加一个 @Html.EditorFor(m => m.SerialNumber) 我可以看到包含视图在浏览器中呈现的 SerialNumber 值文本框,当提交表单时,我也将它返回到控制器中。但是,我不想要表单上的 SerialNumber 属性的编辑器——我只希望它在提交时返回到控制器中。
我怎样才能让整个模型回到控制器,因为它被传递到部分视图中,只有部分视图所做的更改?