2010-08-17 39 views
1

我需要做一些驗證,其中必須輸入2個字段中的1個。 MVC 2中最好的做法是什麼?MVC 2:交叉字段自定義驗證

該字段是;

<%: Html.EditorFor(model => model.contract.ClientOrderNumber)%> 

<%: Html.TextAreaFor(model => model.contract.InstructionWithoutClientOrder, 
         new { maxlength = "255", style = "width:200px;height:100px;"})%> 

回答

2

你有一個驗證屬性添加到您的模型類。

[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) 
    } 
} 

並在您的視圖模型:

[SomeValidation] 
public class MyViewModel 
{ 
    public string X { get; set; } 
    public string Y { get; set; } 
}