使用强类型视图在数据输入/编辑表单中显示复杂对象。例如:Model.UserInformation.Name,Model.LivingPlace.FacilitiesSelectList,Model.Education.DegreesList ...等。这些信息显示在多选列表框,网格等中。用户可以在编辑屏幕中更改信息。有没有办法在sumbit按钮点击时将用户更改发布到控制器的Model对象。请建议。
此致 单
答案 0 :(得分:2)
已传递给视图的同一对象实例:否.ASP.NET MVC使用默认的Model绑定器从请求值实例化新的操作参数。例如,如果您有以下操作方法:
public ActionMethod DoWork(User model)
{
return View();
}
public class Address
{
public string Street { get; set; }
}
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Address[] Addresses { get; set; }
}
绑定器将查看请求并尝试绑定模型值。您可以在视图中查看以下内容:
<%= Html.TextBox("FirstName") %>
<%= Html.TextBox("LastName") %>
<%= Html.TextBox("Addresses[0].Street") %>
<%= Html.TextBox("Addresses[1].Street") %>
这将自动在控制器操作中填充模型的值。
为避免大量分配不应从请求值绑定的属性,最好使用BindAttribute并设置Exclude或Include属性。
答案 1 :(得分:0)
使用<input type="text" name="UserInformation.Name"><input>
绑定到子对象。