我有一個結構,實現IValidatableObject,我用於視圖模型上的屬性。驗證可以使用不可爲空的屬性,但如果添加可爲空類型的屬性>則不會爲該屬性調用IValidatableObject.Validate方法,即使它具有值。IValidatableObject和Nullable值類型
有沒有什麼辦法可以觸發我的可空屬性驗證呢,還是IValidatableObject不打算與值類型一起使用?
感謝
其他信息:
我希望能夠在我的表單中輸入數據時指定單位,例如10米,100公里,1釐米等。我還想驗證輸入的數據是否在範圍內並且格式正確。我的結構將具有潛在不同單位(100cm/100m/1km)的字符串轉換爲總是具有相同單位(1/100/1000)的小數屬性,反之亦然。
我使用了IValidatableObject進行驗證,因爲驗證對於MyStruct的任何實例都是一樣的 - 我不想在每次使用時都添加一個屬性。
我的模型會是這個樣子:
public class MyModel
{
public MyStruct Ab {get; set;}
public MyStruct? Cd {get; set;}
}
我的看法是使用模型,這使得我的結構爲使用模板顯示一個文本框,一個強類型的視圖。當表單發佈時,我有一個自定義模型聯編程序將輸入的字符串轉換回我的結構。
我控制器操作是這樣的:
public ActionResult MyAction(MyModel model)
{
//do stuff
}
的模式勢必確定並可空類型<MyStruct
的MYSTRUCT性能>。
您能向我們展示迄今爲止您的模型,控制器和視圖的代碼嗎? – 2011-04-12 12:14:53
我更新了更多信息的問題 – Dan 2011-04-12 14:47:06