2015-02-28 6 views
1

UPDATE:не содержит определение для «DropDownList»

, поскольку его мой DropDownTypes коллекция поэтому я стараюсь передать что-то вроде этого: он работает, но только проблема у меня в том, что его выбор по умолчанию значение, которое является то, что индекс 0 и мой item.Type является выбранное значение

@Html.DropDownListFor(m => item.Type, new SelectList(item.DropDownTypes.Select(x => x.Text))) 

Что я делаю неправильно здесь, я стараюсь, чтобы загрузить DROPDOWNLIST

«System.Web.Mv c.HtmlHelper> « не содержит определение для„DropDownList“и лучший метод перегрузки расширения » System.Web.Mvc.Html.SelectExtensions.DropDownList (System.Web.Mvc.HtmlHelper, строки, системы. Collections.Generic.IEnumerable, объект)»имеет некоторые недопустимые аргументы

@model IEnumerable<web.Models.CollectionViewModel> 
@foreach (var item in Model) 
{ 
    <tr> 
    <td> 
     @Html.DropDownList(item.DropDownTypes, (IEnumerable<SelectListItem>)ViewBag.DropDownLoadRecoveryType, new { @class = "form-control" }) 
    </td> 
    </tr> 
} 
+0

У вас есть целый ряд вопросов - вы не можете использовать 'DropDownListFor()' в цикле, если не создать новый 'SelectList' и установить выбранное значение в каждой итерации, или использовать пользовательские' EditorTemplate' для модель и передать 'SelectList' в качестве дополнительных данных вида. Можете ли вы опубликовать модель и метод GET? –

ответ

1

Это, как я смог достичь в случае, если кто-то еще должен был знать.

@Html.DropDownListFor(model => item.Type.Value, new SelectList(ViewBag.DropDownLoadRecoveryType, "Value", "Text", item.Type)) 
0

Первый аргумент DropDownList помощника, который вы используете, должны быть строкой, поэтому убедитесь, что item.DropDownTypes на самом деле строка. Если это не так, вы можете подумать о том, чтобы называть его .ToString().

+0

Теперь я изучаю это, и мой 'item.DropDownTypes' является коллекцией, поэтому даже если я использовал' DropdownlistFor' –

0

Вам следует рассмотреть возможность добавления выбранного значения раскрывающегося списка в другую переменную вашей модели. Таким образом, вы можете использовать его в списке, как вы передаете список в настоящее время, не действует:

@model IEnumerable<web.Models.CollectionViewModel> 
@foreach (var item in Model) 
{ 
    <tr> 
    <td> 
     @Html.DropDownList(item.SelectedDropDownType, (IEnumerable<SelectListItem>)ViewBag.DropDownLoadRecoveryType, new { @class = "form-control" }) 
    </td> 
    </tr> 
} 

Где item.SelectedDropDownType может быть

public string SelectedDropDownType { get; set;} 
+0

, да, я пробовал так, что теперь происходит, когда весь раскрывающийся список получение того же текста, который является индексом 0, хотя мой id отличается –

+0

Я обновил свой вопрос, пожалуйста, взгляните на него. –

Смежные вопросы