将模型中的嵌套类提交给控制器



我试图提交一个包含嵌套类的模型的表单。但是,当我将数据获取到控制器时,嵌套类中有空字段。

型号:

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"/>
}

以这个小提琴为例。

相关内容

  • 没有找到相关文章

最新更新