我需要进行一些验证,其中必须输入2个字段中的1个。 在MVC 2中做到这一点最好的是什么?
字段是;
<%: Html.EditorFor(model => model.contract.ClientOrderNumber)%>
和
<%: Html.TextAreaFor(model => model.contract.InstructionWithoutClientOrder,
new { maxlength = "255", style = "width:200px;height:100px;"})%>
答案 0 :(得分:2)
您必须将验证属性添加到模型的CLASS中。
[AttributeUsage(AttributeTargets.Class)]
public class SomeValidationAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
//value contains your complete model!
MyViewModel model = (MyViewModel) value;
return !string.IsNullOrWhiteSpace(model.X) || !string.IsNullOrWhiteSpace(model.Y)
}
}
在你的viewmodel上:
[SomeValidation]
public class MyViewModel
{
public string X { get; set; }
public string Y { get; set; }
}