Ответ 1
Попробуйте следующее:
@Html.DropDownListFor(modelItem => modelItem.CheckerApproved, new [] { new SelectListItem { Text = "True", Value="1" } , new SelectListItem { Text = "False", Value="0"} })
Я пытаюсь установить базовый DropDownListFor в MVC:
@Html.DropDownListFor(modelItem => item.CheckerApproved, new SelectList(new SelectListItem { Text = "True", Value="1" } , new SelectListItem { Text = "False", Value="0"}))
Это, на мой взгляд, и то, что я хочу, - это базовое раскрытие true
и false
со значениями 1
и 0
соответственно.
Я думаю, что у меня есть неправильная добавка элементов в конструктор SelectList.
Может кто-нибудь помочь мне с этим?
Попробуйте следующее:
@Html.DropDownListFor(modelItem => modelItem.CheckerApproved, new [] { new SelectListItem { Text = "True", Value="1" } , new SelectListItem { Text = "False", Value="0"} })
Что-то вроде этого, почему бы вам просто не просто выпустить тег Select с параметрами в вашем представлении?
<select id='ddlTrueFalse' name='ddlTrueFalse'>
<option value='1'>True</option>
<option value='0'>False</option>
</select>
Затем в вашем действии добавьте параметр:
public ActionResult MyAction(string ddlTrueFalse)
{
//ddlTrueFalse will be "1" or "0"
}
Мне пришлось сделать некоторые из них, и я на самом деле написал это как метод расширения для HtmlHelper, но он намного чище, его легко отлаживать и быстрее для сайта в целом.
Это уже существует - если вы делаете Html.EditorFor(model => model.MyBoolean)
, вы получите раскрывающийся список с True/False и по умолчанию Unset или аналогичный.
Мне было трудно понять, как добавить "класс" к приведенному выше коду, поэтому я поделился этим, мне пришлось поместить оригинальный выпадающий список в скобки, а затем добавить перегрузку
@Html.DropDownListFor(modelItem => modelItem.CheckerApproved, (new[] { new SelectListItem { Text = "True", Value = "1" }, new SelectListItem { Text = "False", Value = "0" } }), new { @class = "form-control" } )