C# 仅将多个对象的选定复选框提交给MVC控制器
当我有以下表格时:C# 仅将多个对象的选定复选框提交给MVC控制器,c#,asp.net-mvc,forms,C#,Asp.net Mvc,Forms,当我有以下表格时: <input type="checkbox" name="modules" value="1" /> <input type="checkbox" name="modules" value="2" /> <input type="checkbox" name="modules" value="3" /> 但是,当上面的表单被包装到for循环中时,会发生什么呢 @for (int i = 0; i < cart.Events.Coun
<input type="checkbox" name="modules" value="1" />
<input type="checkbox" name="modules" value="2" />
<input type="checkbox" name="modules" value="3" />
但是,当上面的表单被包装到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不知道如何将表单数据绑定到对象。我只想发送所选的值,因为并不是说模块复选框的计数总是相同的
如何解决此问题?所有复选框都有相同的名称,您可以通过以下方式自定义名称:@(“模块”+cart.Events[i].name)。您的模型需要一个属性,例如
bool IsSelected
,以及一个值属性,例如int value
-参考示例您还可以添加TestObject的代码吗
[HttpPost]
public ActionResult Submit(TestObject modules)
{
}
public class TestObject
{
public string[] modules { get; set; }
}