当我有以下表格时:
<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循环时会是这样的:
@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" />
}
使用看起来像这样的控制器:
[HttpPost]
public ActionResult Submit(TestObject modules)
{
}
public class TestObject
{
public string[] modules { get; set; }
}
这将无法正常工作,因为MVC不知道如何将表单数据绑定到对象。我只想发送选定的值,因为它没有说模块复选框的数量总是相同的。
如何解决这个问题?
答案 0 :(得分:0)
所有复选框都具有相同的名称,您可以通过以下方式自定义名称:@(“modules”+ cart.Events [i] .Name)。