MVC DropDownListFor basic True False в представлении

Я пытаюсь установить базовый 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.

Может кто-нибудь помочь мне с этим?

Ответ 1

Попробуйте следующее:

@Html.DropDownListFor(modelItem => modelItem.CheckerApproved, new [] { new SelectListItem { Text = "True", Value="1" } , new SelectListItem { Text = "False", Value="0"} })

Ответ 2

Что-то вроде этого, почему бы вам просто не просто выпустить тег 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, но он намного чище, его легко отлаживать и быстрее для сайта в целом.

Ответ 3

Это уже существует - если вы делаете Html.EditorFor(model => model.MyBoolean), вы получите раскрывающийся список с True/False и по умолчанию Unset или аналогичный.

Ответ 4

Мне было трудно понять, как добавить "класс" к приведенному выше коду, поэтому я поделился этим, мне пришлось поместить оригинальный выпадающий список в скобки, а затем добавить перегрузку

@Html.DropDownListFor(modelItem => modelItem.CheckerApproved, (new[] { new SelectListItem { Text = "True", Value = "1" }, new SelectListItem { Text = "False", Value = "0" } }), new { @class = "form-control" } )