Когда у меня есть следующий вид:Добавить выбранные флажки только для нескольких объектов контроллера MVC
<input type="checkbox" name="modules" value="1" />
<input type="checkbox" name="modules" value="2" />
<input type="checkbox" name="modules" value="3" />
Это Виль правильно отправить на следующий контроллер MVC:
[HttpPost]
public ActionResult Submit(string[] modules)
{
}
Но что, когда выше форма завернута в петлю, например:
@for (int i = 0; i < cart.Events.Count; i++)
{
<h1>@cart.Events[i].Name</h1>
<input type="checkbox" name="modules" value="1" />
<input type="checkbox" name="modules" value="2" />
<input type="checkbox" name="modules" value="3" />
}
С контроллером, который выглядит примерно как t его:
[HttpPost]
public ActionResult Submit(TestObject modules)
{
}
public class TestObject
{
public string[] modules { get; set; }
}
Это не будет работать правильно, поскольку MVC не знает, как привязать данные формы к объекту. Я хочу отправить только выбранные значения, потому что не указано, что флажки кол-во модулей всегда одинаковы.
Как это исправить?
Ваша модель нуждается в свойстве say 'bool IsSelected' и свойство для значения, например' int Value' - см. [Этот ответ] (http://stackoverflow.com/questions/29542107/pass-list-of- checkboxes-in-view-and-pull-out-ienumerable/29554416 # 29554416) для примера –
Вы также можете добавить код TestObject – Usman