Asp.net mvc nested model form model

Is it possible to accept only feedback values ​​from a nested view model?

For example, I would like to publish only "Address":

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

To this controller action:

[HttpPost]
public ActionResult SaveAddress(Address address) {
  // save to db here
}
Currently, values ​​are returned only if I pass the address to my own partial view so that the properties look like this:
@Html.TextBoxFor(p => p.Street)
@Html.ValidationMessageFor(p => p.Street)
+5
source share
1 answer

You can specify a binding prefix:

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

Another possibility is to use partial:

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

and inside _Address.cshtml:

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

All Articles