Привязка чекбоксов к массиву int/перечислимым в MVC

@Html.CheckBox("orderNumbers", new { value = 1 })
@Html.CheckBox("orderNumbers", new { value = 2 })
@Html.CheckBox("orderNumbers", new { value = 3 })
@Html.CheckBox("orderNumbers", new { value = 4 })
@Html.CheckBox("orderNumbers", new { value = 5 })

[HttpPost]
public ActionResult MarkAsCompleted(IEnumerable<int> orderNumbers) { }

[HttpPost]
public ActionResult MarkAsCompleted(IEnumerable<string> orderNumbers) { }

Если я использую первую сигнатуру в своем методе действия, я получаю пустой IEnumerable.

Если я использую вторую сигнатуру, я получаю значения, но я также получаю ложное значение для невыбранных значений (из-за паттерна MVC, который затеняет все флажки скрытым полем).

Например, я получу что-то вроде orderNumbers = { "1", "2", "false", "4", "false" }

Почему я не могу просто получить список чисел?

17
задан fearofawhackplanet 16 December 2011 в 13:01
поделиться