В моей модели ViewModel я возвращаю следующее для раскрывающегося списка:
public IEnumerable<SelectListItem> Statuses
{
get
{
using (var context = new AssetManager.Models.AssetManagerEntities())
{
var query = from status in context.AssetStatuses
where status.Reserved != true
select new SelectListItem()
{
Value = SqlFunctions.StringConvert((double)status.Id),
Text = status.Name,
Selected = false
};
return query.ToList();
}
}
}
Затем в моем представлении это выглядит примерно так:
@Html.DropDownListFor(model => model.Status, (IEnumerable<SelectListItem>)Model.Statuses)
Это все работает нормально, за исключением SqlFunctions. StringConvert, по умолчанию, делает строку длиной 10, поэтому я получаю это в html:
<option value=" 7">Free to loan</option>
Обратите внимание на интервал в поле значения. Это проблема, потому что моя ViewModel требует, чтобы это поле было int.
Я мог бы просто указать параметр длины, но он не является динамическим.
Кто-нибудь видел эту проблему или есть решение?
Спасибо, Ник