2012-09-21 233 views
1

僅當用戶選擇與值爲o(零)的選項不同的選項時,是否可以使用數據註釋屬性才能使下拉列表有效。 值爲o(零)的選項是默認選擇的「請選擇一個帳戶」。 我用[Required]屬性來驗證這個下拉列表,但它沒有任何作用,因爲,我怎麼說,默認情況下選擇值爲o(零)的選項 - 「請選擇一個帳戶」 - 被選中。帶數據註釋的MVC3驗證?

+0

您的要求不是很清楚,特別是關於0值。你能重申一下你的問題嗎? –

回答

1

喜歡的東西:

[Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {1}")] 
public int Value { get; set; } 
+0

太棒了!非常感謝! – taia

1

製作無厘頭所需的下拉列表。你需要的是用戶從下拉列表中選擇一個非零值。所以應該要求的是SelectedAccount屬性。您應該使用MVC輔助方法的下拉列表中選擇值綁定到SelectedAccount屬性:

@Html.DropdownListFor(m => m.SelectedAccount, new SelectList(Model.Accounts)) 

我大概是掉在語法,但你可以看看這件事。

現在關於您的其他問題,以確保值不爲零。帳號是以數字表示還是可以包含非數字字符?如果它是一個數字,那麼你應該在你的代碼中代表它。如果它確實是一個字符串,那麼下拉列表的第一個值應該是一個空字符串,而不是零。

如果您認爲它是一個數字,然後使用範圍註釋,以確保該值大於零:

[Required] 
[Range(1, Int32.MaxValue)] 
public string SelectedAccountNumber {get;set;} 

希望幫助!

+0

這是工作!謝謝! – taia