我剛剛掌握了自定義驗證屬性,並且我正在嘗試編寫一個自定義驗證attirbute,將放置在類級別以驗證我的模型的多個屬性。如何爲自定義驗證屬性中的不同場景設置多個錯誤消息?
我可以訪問我的模型的所有屬性,我希望能夠在我的IsValid超載檢查多個條件,並對其進行報告,具有不同的錯誤信息如下(簡單的例子)。
public override bool IsValid(object value)
{
var model = (MyObject) value;
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
if (model.Prop1 == "blah" && model.Prop2 == 1)
{
ErrorMessage = "you can't enter blah if prop 2 equals 1";
return false;
}
if(model.Prop1 == "blah blah" && model.Prop2 == 2)
{
ErrorMessage = "you can't enter blah blah if prop 2 equals 2";
return false;
}
return true;
}
但是當我這樣做,我得到第一時間的ErrorMessage異常引用「無法設置屬性不止一次。
現在我能拆了我的自定義屬性爲多個自定義屬性,但希望會有辦法做到這一點的一個,否則,我會重複在每個
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
我就已經搜索我的「一網打盡」,但找不到任何東西,所以道歉,如果我缺少任何明顯的東西。
在此先感謝!