0
我有一個複雜的模型ASP.NET MVC的複雜模型驗證
public class ComplexModel
{
public UserModel userModel;
public ExtraInfoModel extraModel;
}
其中
的usermodel可能必填字段
爲:
public class UserModel
{
[Required]
public string email;
}
我怎麼驗證ComplexModel以確保其成員模型上的數據註釋正在被帶入Compl中的帳戶exModel驗證?
謝謝。
更新:
這是我的確切場景。當我在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)
{
}
}
我剛剛發佈了一個更新我的問題。它看起來不像DefaultModelBinder正在處理我的情況。任何見解都非常感謝。 – alexm 2010-10-27 19:24:06
我看到的唯一區別是您正在製作實際需要的子模型實例。我想如果你在子模型上需要屬性,那麼這些屬性仍然會起泡,所以你不應該需要它。嘗試刪除子模型實例上的必需屬性,看看它是否更改。 – tvanfosson 2010-10-27 21:04:07
這就是我所想的。但事實並非如此。所以,出於試圖找到修復,我試圖在頂級模型的成員上添加[必需]。 – alexm 2010-10-28 01:35:56