asp.net mvc嵌套视图模型表单sumission

时间:2012-08-21 15:05:00

标签: asp.net-mvc asp.net-mvc-3

是否可以只接受来自嵌套视图模型的回发值?

例如,我只想发布'地址':

@Html.TextBoxFor(p => p.User.Account.Address.Street)
@Html.ValidationMessageFor(p => p.User.Account.Address.Street)

对此控制器操作:

[HttpPost]
public ActionResult SaveAddress(Address address) {
  // save to db here
}
目前,如果我将地址传递给它自己的局部视图,那么这些值只会回发,以便属性如下所示:
@Html.TextBoxFor(p => p.Street)
@Html.ValidationMessageFor(p => p.Street)

1 个答案:

答案 0 :(得分:7)

您可以指定绑定前缀:

[HttpPost]
public ActionResult SaveAddress([Bind(Prefix = "User.Account")] Address model) 
{
    ...
}

另一种可能性是使用部分:

@Html.Partial("_Address", Model.User.Account.Address)

_Address.cshtml内部:

@model Address
@Html.TextBoxFor(p => p.Street)
@Html.ValidationMessageFor(p => p.Street)