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

Vic*_*tor 5 asp.net-mvc asp.net-mvc-3

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

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

@Html.TextBoxFor(p => p.User.Account.Address.Street)
@Html.ValidationMessageFor(p => p.User.Account.Address.Street)
Run Code Online (Sandbox Code Playgroud)

对于此控制器操作:

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

Dar*_*rov 7

您可以指定绑定前缀:

[HttpPost]
public ActionResult SaveAddress([Bind(Prefix = "User.Account")] Address model) 
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

@Html.Partial("_Address", Model.User.Account.Address)
Run Code Online (Sandbox Code Playgroud)

在里面_Address.cshtml:

@model Address
@Html.TextBoxFor(p => p.Street)
@Html.ValidationMessageFor(p => p.Street)
Run Code Online (Sandbox Code Playgroud)