我正在尝试将一些复选框绑定到模型,但我得到空值。
所以基本上,我有一个指定列表:用户可以检查或不检查的可能性。有id名称和描述(用户在UI中使用的名称和描述,以及用于知道所选id的ID) 模型应该将选定的值绑定到“指定”字段,这可以将id保存为List。
以下是我制作selectBoxes的方法:
@foreach (var item in Model.designationList)
{
<label>
@Html.CheckBox("CheckBoxName", new { id = "designation" + item.id, value = item.id }) @item.name: <span style="font-weight:lighter">@item.description</span>
</label>
<br />
}
以下是我们感兴趣的模型部分:
[Required]
public List<IncidentDesignation> designationList { get; set; }
[Required]
public List<int> designation { get; set; }
这是子对象:
public class IncidentDesignation
{
public int id { get; set; }
public string name { get; set; }
public string description { get; set; }
}
最后,这是Html Generated:
<div class="col-md-10">
<label>
<input id="designation1" name="CheckBoxName" type="checkbox" value="1"><input name="CheckBoxName" type="hidden" value="false"> Acte dangereux: <span style="font-weight:lighter">action qui met en danger une ou plusieurs personnes</span>
</label>
<br>
<label>
<input id="designation2" name="CheckBoxName" type="checkbox" value="2"><input name="CheckBoxName" type="hidden" value="false"> Situation dangereuse: <span style="font-weight:lighter">situation qui tôt ou tard, conduit à blesser des personnes ou causer des dégâts matériels importants</span>
</label>
<br>
<label>
<input id="designation3" name="CheckBoxName" type="checkbox" value="3"><input name="CheckBoxName" type="hidden" value="false"> Presqu'accident: <span style="font-weight:lighter">évènement qui aurait pu causer un accident de travail avec ou sans dégâts matériels</span>
</label>
<br>
<label>
<input id="designation4" name="CheckBoxName" type="checkbox" value="4"><input name="CheckBoxName" type="hidden" value="false"> Accident: <span style="font-weight:lighter">événement avec dommages corporels</span>
</label>
<br>
<label>
<input id="designation5" name="CheckBoxName" type="checkbox" value="5"><input name="CheckBoxName" type="hidden" value="false"> Environnement: <span style="font-weight:lighter">situation qui risque d'engendrer un impact</span>
</label>
<br>
<label>
<input id="designation6" name="CheckBoxName" type="checkbox" value="6"><input name="CheckBoxName" type="hidden" value="false"> Incendie: <span style="font-weight:lighter">incendie ayant nécéssité une intervention afin de l'éteindre</span>
</label>
<br>
<span class="text-danger field-validation-valid" data-valmsg-for="incidentDate" data-valmsg-replace="true"></span>
</div>
先谢谢你帮助我
修改
在测试中添加当前控制器:
[HttpPost]
public ActionResult Create(IncidentViewModel model)
{
if (ModelState.IsValid)
{
// add record in db and retrieve IncidentId
// Go to Add pictures with provided ID
}
return RedirectToAction("Create");
}
当断言if语句时,我看到空值。
答案 0 :(得分:1)
使用如下
@foreach (var item in Model.designationList)
{
<label>
<input type="checkbox" value="@item.id" name="CheckBoxName" id = "designation" + @item.id />@item.name: <span style="font-weight:lighter">@item.description</span>
</label>
<br />
}