如何验证嵌套模型?

时间:2013-10-01 16:16:56

标签: c# asp.net-mvc-4 data-annotations

问题:
我试图验证嵌套模型,但是当嵌套模型实例创建时,数据注释属性没有执行。

public class Model
{
    [Required]
    string MainTitle {get;set;}

    public NestedModel NestedModel { get; set; }
}
public class NestedModel
{
    [Required]
    string SubTitle {get;set;}
}

在控制器:

public ActionResult GetTitles(Model model)
{
    if(ModelState.IsValid)
    {
       //Submodel is always valid even if the sub-title is null.
    }
}

Mvc4不支持吗? 如何将验证扩展到这方面?

1 个答案:

答案 0 :(得分:10)

我遇到了同样的问题。我结束了这样做:

public ActionResult GetTitles(Model model)
{
    if(ModelState.IsValid && TryValidateModel(model.NestedModel, "NestedModel."))
    {
       //Submodel will be validated here.
    }
}