我在视图中有以下代码,但是,我可以看到我没有控制器中的值。怎么了? 在我看来,
<%
using (Html.BeginForm())
{%>
<%=Html.TextBox("Addresses[0].Line1") %>
<%=Html.TextBox("Addresses[0].Line2")%>
<%=Html.TextBox("Addresses[1].Line1")%>
<%=Html.TextBox("Addresses[1].Line2")%>
<input type="submit" name="submitForm" value="Save products" />
<%
}
%>
我的课程如下:
public class Customer
{
public string FirstName { get; set; }
public string Lastname { get; set; }
public List<Address> Addresses { get; set; }
public Customer()
{
Addresses = new List<Address>();
}
}
public class Address
{
public int Line1 { get; set; }
public int Line2 { get; set; }
}
我的控制器如下:
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(Customer customer)
{
return View();
}
答案 0 :(得分:0)
ActionResult的参数名为customer,因此默认情况下默认模型绑定器将在表单中查找该名称。我相信如果您将代码修改为以下内容,则应该选择它:
<%=Html.TextBox("customer.Addresses[0].Line1") %>
<%=Html.TextBox("customer.Addresses[0].Line2")%>
<%=Html.TextBox("customer.Addresses[1].Line1")%>
<%=Html.TextBox("customer.Addresses[1].Line2")%>
答案 1 :(得分:0)
检查以确保您的View绑定到Customer模型。
此外,在查看包含表单的网页时,请查看视图生成的源,以查看字段是否正确命名。
最后,如果以上都没有帮助,请更改Index操作中的参数,如下所示:
public ActionResult Index(FormCollection form)
然后您可以使用调试器检查传入的FormCollection对象,以查看View向您发送的确切内容。