SqlFunctions.StringConvert добавлено ненужное заполнение

В моей модели 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.

Я мог бы просто указать параметр длины, но он не является динамическим.

Кто-нибудь видел эту проблему или есть решение?

Спасибо, Ник

16
задан ElefantPhace 31 March 2013 в 20:43
поделиться