如果您有以下类型。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List<TheParameters> Parameters { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
}
public class TheParameters
{
public string Parameter { get; set; }
}你让你的页面强输入给Person。
"System.Web.Mvc.ViewPage<Person>"
<form action="/Home/Save" method="post">
<b>Your Name</b>
<label for="FirstName">
<span>First Name</span>
<%=Html.TextBox("Person.FirstName", ViewData.Model.FirstName) %>
</label>
<label for="LastName">
<span>Last Name</span>
<%=Html.TextBox("Person.LastName", ViewData.Model.LastName)%>
</label>
<b>Your Address</b>
<label for="Street">
<span>Street</span>
<%=Html.TextBox("Person.Address.Street", ViewData.Model.Address.Street)%>
</label>
<label for="City">
<span>City</span>
<%=Html.TextBox("Person.Address.City", ViewData.Model.Address.City)%>
</label>
<label for="State">
<span>State</span>
<%=Html.TextBox("Person.Address.State", ViewData.Model.Address.State)%>
</label>
<label for="Parameters">
<span>Parameters</span>
<%
int index = 0;
foreach (TheParameters parameter in ViewData.Model.Parameters)
{
Response.Write(Html.TextBox("Person.Parameters.Parameter[" + index + "]", parameter.Parameter));
index++;
}
%>
</label>
<input id="submit" type="submit" value="submit" />
</form>
在控制器中设置以下内容:
public ActionResult Index()
{
Person p = new Person();
p.FirstName = "Name";
p.LastName = "Last";
p.Address = new Address();
p.Address.City = "city";
p.Address.State = "state";
p.Address.Street = "street";
p.Parameters = new List<TheParameters>();
p.Parameters.Add(new TheParameters(){ Parameter = "P1" });
p.Parameters.Add(new TheParameters(){ Parameter = "p2" });
ViewData.Model = p;
return View();
}
public ActionResult Save(FormCollection form)
{
Person p = new Person();
UpdateModel(p, "Person", form.ToValueProvider());
return RedirectToAction("Index");
}我给UpdateModel打电话。除了Person.Parameters之外,所有属性都已正确填写。在updateModel之后始终为null。
有没有解决这个问题的办法或变通办法?
致敬,史蒂夫
发布于 2012-02-08 20:39:21
在您的视图中:
"Person.Parameters.Parameter[" + index + "]" 应该是
"Person.Parameters[" + index + "].Parameter"https://stackoverflow.com/questions/642939
复制相似问题