Добавление CSS-класс, чтобы затем использовать @HTML-код.Выпадающий список()
Я создаю свое первое приложение MVC после многих лет работы с веб-формами, и по какой-то причине я не могу сделать эту работу:
@Html.DropDownList("PriorityID", String.Empty, new {@class="textbox"} )
сообщение об ошибке:
System.Web.Mvc.HtmlHelper<SPDR.Models.Bug>' Не содержит определение для DropDownList и лучший метод расширения перегрузки System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object) имеет некоторые недопустимые аргументы
любая помощь очень ценится!
10 ответов:
глядя на контроллер, и узнав немного больше о том, как MVC на самом деле работает, я смог понять это.
мой взгляд был одним из автоматически сгенерированных и содержал эту строку кода:
@Html.DropDownList("PriorityID", string.Empty)чтобы добавить атрибуты html, мне нужно было сделать что-то вроде этого:
@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class="dropdown" })еще раз спасибо @Laurent за вашу помощь, я понимаю, что вопрос был не так ясен, как это могло бы быть...
обновление:
A лучший способ сделать это было бы использовать DropDownListFor где это возможно, таким образом, вы не полагаетесь на магическую строку для атрибута name
@Html.DropDownListFor(x => x.PriorityID, (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class = "dropdown" })
как следует из подписи сообщения об ошибке, второй аргумент должен быть IEnumerable, более конкретно, IEnumerable of SelectListItem. Это список вариантов. Можно использовать вид списка, который представляет собой интерфейс IEnumerable из SelectListItem. Для списка без выбора:
@Html.DropDownList("PriorityID", new List<SelectListItem>(), new {@class="textbox"} )для списка с несколькими вариантами:
@Html.DropDownList( "PriorityID", new List<SelectListItem> { new SelectListItem { Text = "High", Value = 1 }, new SelectListItem { Text = "Low", Value = 0 }, }, new {@class="textbox"})возможно, этот учебник может помочь:как создать выпадающий список с помощью ASP.NET MVC
Если вы добавляете больше, чем аргумент ya dropdownlist в Asp.Net MVC. Когда вы редактируете запись или передаете значение в сумке просмотра.
использовать это будет работать: -
@Html.DropDownList("CurrencyID",null,String.Empty, new { @class = "form-control-mandatory" })
Вы можете сделать это с помощью jQuery
$("select").addClass("form-control")здесь выберите is-html tag, Форма контроля - имя класса
@Html.DropDownList("SupplierId", "Select Supplier")и здесь SupplierId-это ViewBagList, Выберите поставщик - отображаемое имя
есть несколько вариантов в конструкторах look, если у вас нет выпадающего списка, и вы хотите вставить класс CSS, который вы можете использовать как
@Html.DropDownList("Country", null, "Choose-Category", new {@class="form-control"})в этом случае страна-это имя вашего выпадающего списка, null-это то, что вы не передаете какой-либо общий список из вашего контроллера" выбрать-категория " выбран элемент и последний в классе CSS если вы не хотите выбирать какой-либо вариант по умолчанию, так просто замените "выбрать категорию" на"
просто попробуйте это
@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class="dropdown" })но если вы хотите, чтобы значение по умолчанию или значение параметра, то вы должны попробовать это, потому что
String.Emptyбудет выбрать, что нет значения для вас, который будет работать как-select-как вариант по умолчанию@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID, String.Empty, new { @class="dropdown" })
попробуйте это:
@Html.DropDownList( "country", new[] { new SelectListItem() { Value = "IN", Text = "India" }, new SelectListItem() { Value = "US", Text = "United States" } }, "Country", new { @class = "form-control",@selected = Model.Country} )
Comments