【发布时间】:2010-10-27 18:07:04
【问题描述】:
我有一个复杂的模型
public class ComplexModel
{
public UserModel userModel;
public ExtraInfoModel extraModel;
}
在哪里
UserModel 可能有必填字段
如:
public class UserModel
{
[Required]
public string email;
}
如何验证 ComplexModel 以确保在 ComplexModel 验证中考虑到其成员模型上的数据注释?
谢谢。
更新:
这是我的确切情况。当我在 ManageProfileModel 的控制器操作中调用 ModelState.IsValid 时,无论是否设置了 GeneralInfoModel 的 ListModelRequired 成员的“SelectedValue”,模型状态是否有效。
public class ManageProfileModel
{
[Required(ErrorMessage="Experience is required")]
public int LevelOfExperienceTypeID { get; set; }
public GeneralInfoModel GeneralInfoModel { get; set; }
}
public class GeneralInfoModel
{
[Required]
[DisplayName("Profile Headline")]
public string ProfileName { get; set; }
[DisplayName("Signature")]
public string Signature { get; set; }
[Required]
public ListModelRequired LevelOfExperience { get; set; }
}
public class ListModel
{
public ListModel()
{
}
public ListModel(string name)
{
this.Name = name;
}
public ListModel(string name, string selectedValue):this(name)
{
this.SelectedValue = selectedValue;
}
public ListModel(string name, IEnumerable<SelectListItem> members):this(name)
{
this.Members = members;
}
public ListModel(string name, IEnumerable<SelectListItem> members, string selectedValue)
: this(name, members)
{
this.SelectedValue = selectedValue;
}
public IEnumerable<SelectListItem> Members { get; set; }
public string Name { get; set; }
public virtual string SelectedValue { get; set; }
public string Label { get; set; }
}
public class ListModelRequired : ListModel
{
[Required]
public override string SelectedValue { get; set; }
public ListModelRequired():base()
{
}
public ListModelRequired(string name):base(name)
{
}
public ListModelRequired(string name, string selectedValue):base(name,selectedValue)
{
}
public ListModelRequired(string name, IEnumerable<SelectListItem> members)
: base(name, members)
{
}
public ListModelRequired(string name, IEnumerable<SelectListItem> members, string selectedValue)
: base(name, members,selectedValue)
{
}
}
【问题讨论】:
标签: c# asp.net-mvc validation model