模型验证mvc中的复杂类型

时间:2014-03-05 20:11:36

标签: asp.net-mvc validation

我有一个mvc视图,它在模型中包含一个模型,我有一个userinformation对象,其中包含有关当前用户和表单中使用的其他一些属性的数据。

当我提交表单时,简单类型被正确映射并且验证工作正常,但是复杂类型设置为null,因此如果验证失败并且我再次向视图显示userinformation对象为null且数据不是虽然我没有将它作为表格的一部分使用,但仍显示出来。

public class AssessorsViewModel
{
     public UserInfo UserInformation { get; set; }

    [Required(ErrorMessage = "Please select an assessment provider")]
    [Display(Name = "Assessor Provider Name")]
    public string Assessor { get; set; }

    [Required(ErrorMessage = "Please select the type of assessment")]
    [Display(Name = "Assessment Type")]
    public byte AssessmentType { get; set; }


}

如何在表单提交时保留此用户信息?我尝试将对象添加到隐藏字段但不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你能提供你的html文件吗?

如果没有该文件,我假设您没有在表单中放置UserInfo属性。为了使用表单发布值,它需要在表单中。为此,请在表单中为每个UserInfo属性添加隐藏字段。

剃刀:

@Html.HiddenFor(m => m.UserId)

我建议考虑将UserInfo数据放入cookie中。