@Html.DropDownList не удалось добавить класс управления формой

Мне нужно добавить класс в DropDownList, чтобы он выглядел более презентабельно. Поэтому я использую код ниже с htmlAttribute:

@Html.DropDownList("DepartmentId", "Select a Department:", htmlAttributes: new { @class = "form-control" })

Я получаю ошибки, потому что он говорит:

does not contain a definition for 'DropDownList' and the best extension method overload 'System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, string)' has some invalid arguments

Может кто-нибудь научить меня, как добавить класс управления формой, чтобы сделать DropDownList?

Код, который работает:

@Html.DropDownList("DepartmentId", null, htmlAttributes: new { @class = "form-control" })

1 ответ

Там нет перегрузки DropDownList это позволяет вам указать как параметр по умолчанию, так и атрибуты HTML. DropDownListFor делает, однако.

Как вы заполняете свой выпадающий список с опциями? Если вы делаете это на стороне сервера в своем действии контроллера, вы можете (и, вероятно, должны) использовать DropDownListFor:

@model DepartmentViewModel
...
@Html.DropDownListFor(model => model.DepartmentId, Model.Departments, "Select a Department:", new { @class = "form-control" })

Ваш класс модели представления будет выглядеть так:

public class DepartmentViewModel {
    ...
    public int DepartmentId { get; set; }
    public IEnumerable<SelectListItem> Departments { get; set; }
    ...
}

И в вашем контроллере действие:

public ActionResult Index() {
    ...
    var model = new DepartmentViewModel();
    model.Departments = new List<SelectListItem> {
        new SelectListItem { Value = "1", Text = "First Department"},
        new SelectListItem { Value = "2", Text = "Second Department"}
    };
    ...
    return View(model);
}

Но если вы заполняете раскрывающийся список значениями с помощью javascript/jquery, было бы так же просто использовать обычный синтаксис HTML:

<select name="DepartmentId" id="DepartmentId" class="form-control">
    <option value="">Select a Department:</option>
<select>
Другие вопросы по тегам