创建视图中的子类属性

时间:2014-05-14 06:39:01

标签: asp.net-mvc

我有一个这样的模型:

ClassA {
 int property1;
 ClassB elementB;
}

ClassB {
  [Required]
  int nameB;
}

在我用来创建新A的视图中,我传递了:

@model MyProject.ClassA  

但我想为ClassB创建一个字段:

@Html.TextBoxFor(model => model.ClassB.nameB)
@Html.ValidationMessageFor(model => model.ClassB.nameB)

字段显示正确,但是必需控件不起作用,而在HttpPost操作的控制器中,字段始终为== null。 这是正常的行为吗? 有什么想法让它有效吗? THX!

1 个答案:

答案 0 :(得分:0)

这些成员需要是公共财产,而不是现场。试试这个:

public class ClassA
{
    public int property1 { get; set; }
    public ClassB elementB { get; set; }
}

public class ClassB
{
    [Required]
    public int nameB { get; set; }
}

动作:

[HttpPost]
public ActionResult Index(ClassA a)
{
    if (ModelState.IsValid)
    {

    }
}