В ASP.NET 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>
Теперь допустим, что я хочу, чтобы Mastercard был выбран по умолчанию. Я должен сделать что-то вроде этого
CardTypes = new List<SelectListItem>();
var ctypes = db.ExecuteReaderDynamic( "CardType_GetAll", null, System.Data.CommandType.StoredProcedure )
.Select( d =>
new SelectListItem
{
Text = d.Name,
Value = d.ID.ToString()
Selected = (d.ID == (int)CardType)
} );
CardTypes.AddRange( ctypes );
Теперь у меня нет проблем с этой частью, которая не всегда не обещает работать. Иногда он будет передавать «Mastercard» вместо переданного числового значения ... Я не понимаю, как это исправить ... Только несколько решений, которые я не хочу использовать, если я могу помочь, потому что это просто означает больше работы ...