asp.net-mvc - asp.net mvc 嵌套 View 模型表单提交

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

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

例如,我只想发布“地址”:

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

对此 Controller 操作:
[HttpPost]
public ActionResult SaveAddress(Address address) {
  // save to db here
}
目前,只有当我将地址传递给它自己的部分 View 时,这些值才会回发,以便属性看起来像:
@Html.TextBoxFor(p => p.Street)
@Html.ValidationMessageFor(p => p.Street)

最佳答案

您可以指定绑定(bind)前缀:

[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)

关于asp.net-mvc - asp.net mvc 嵌套 View 模型表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057838/

相关文章:

c# - UrlHelper.Action 抛出 ArgumentNullException

c# - 在文本中显示数字

c# - 无法序列化列表<SelectListItem>

c# - System.Web.Caching.Cache Dispose 对象是否从缓存中清除?

asp.net-mvc - 如何在 ASP.NET MVC 3 应用程序中处理未捕获的异常?

asp.net-mvc - 如何进入system.web.mvc

c# - .NET Razor + Bootstrap 如何将一个很长的元素声明拆分成多行代码

c# - "Inheriting"创建 ViewModel 时来自多个模型的 DataAnnotations

c# - 如何将文档从 Sharepoint 文档库返回给用户?

jquery - 使用 BeginForm 帮助程序时启动客户端验证