0
在ASP.NET MVC3中,我認爲它已成爲一個已知問題,而我只是沒有找到正確的答案來解決我的問題。如何綁定MVC3中的枚舉值以選擇正確的枚舉值?
我有一個枚舉這樣的事情
public enum CardType
{
[Description("")]
None = 0,
Visa = 1,
Mastercard = 2,
Discover = 3,
[Description("American Express")]
AmericanExpress = 4
}
現在正確的任期將是這樣的事情正在被從數據庫中的表拉,因爲我只感到我已經啓用了某些類型的卡馬上。我們只有Visa/Mastercard
<select name="CardType" id="CardType">
<option value="1">Visa</option>
<option value="2">Mastercard</option>
</select>
現在讓我們說我想要萬事達被默認選中。我必須這樣做
現在我沒有這個部分的問題,這並不總是沒有前途的工作。有時它會通過「萬事達卡」而不是通過的數字值......我對如何解決這個問題感到困惑......只有幾個我不想使用的解決方案,如果我可以幫助它,因爲它只是意味着更多的工作...
否CardType是表中的一個屬性,我只是將其轉換爲整數。將它設置爲Mastercard的數據庫中的ID爲2的問題例如...它不選擇第一個,因爲它是選擇列表中的第一個選項。如果我通過HttpPost提交數據,或者它不會根據值設置值。這是應該工作的。 – Benjamin
哦,更不用說當前的Select DropDownList代碼工作的方式是它試圖設置選定的值。基本上它不會使用我所做的「選擇列表」,即使是新的SelectList等也不起作用,因爲它期望像「MasterCard」這樣的數值而不是2,所以理論上「2」==「 MasterCard「是False ...這就是問題所在,我開始認爲我必須克隆Select Internal來更好地處理比較」Enum.ToString「的比較,如果比較失敗,它會嘗試比較數值比較... – Benjamin
填寫所有選擇值爲False默認值是什麼問題?該ID與Enum索引是否匹配?所以當你在SelectList中選擇正確的,那麼這應該是正確的?你爲什麼使用ToString()?您可以完美地將Int值推入SelectListItem值。 –