我试图提交一个包含嵌套类的模型的表单。但是,当我将数据获取到控制器时,嵌套类中有空字段。
型号:
public class Person
{
public string Name { get; set; }
public ExtraStuff Stuff { get; set; } = new ExtraStuff();
}
public class ExtraStuff
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
视图:
@model ProjectName.Models.Person
@Html.TextBoxFor(model => model.Name)
@Html.TextBoxFor(model => model.Stuff.Field1)
@Html.TextBoxFor(model => model.Stuff.Field2)
控制器:
public ActionResult ActionName (Person data)
{
data.Name //this is fine
data.Stuff.Field1 //comes in empty
data.Stuff.Field2 //comes in empty
}
我想知道您是否正在进行一些自定义表单提交,因为提供的代码似乎没有任何问题。如果你制作了一个像下面这样的表格,它应该可以工作:
@using (Html.BeginForm("ActionName", "MyController"))
{
@Html.TextBoxFor(model => model.TopValue)
@Html.TextBoxFor(model => model.Nested.SomeValue)
<input type="submit" value="Submit"/>
}
以这个小提琴为例。