当结果为{false}(表示未选中)和{true,false}(表示选中)时,如何检查复选框的值是否为true?当我向助手添加value =“ yes”时,我得到{yes,false}进行检查。{Sidebar:Microsoft怎么了才不能正确解决呢?}
{版本:netcoreapp3.1,Microsoft.EntityFrameworkCore 3.1.5,Microsoft.VisualStudio.Web.CodeGeneration.Design 3.1.3,VS Enterprise 2019 16.6.3}
视图:
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" asp-for="MyBoolValue" /> @Html.DisplayNameFor(model => model.MyBoolValue)
</label>
</div>
控制器:(具有IFormCollection表单)
if(form["MyBoolValue"].ToString() != "") // Does not work when the value is {false} not checked
{
DbTable.MyBoolValue = true;
}
else
{
DbTable.MyBoolValue = false;
}
我尝试了许多组合,例如:
if(Convert.ToBoolean(form["MyBoolValue"]) == true)
任何人都可以通过一种简单的方法从复选框中始终获取真实的错误条件?
第二个字段是隐藏字段。无论是否选中该复选框,都将提交。如果选中此复选框,则过帐值将为true,false。否则,发布的值将是错误的。这是由设计引起的。如果要检查复选框是true还是false,可以这样:
控制器:
public IActionResult Test(IFormCollection form) {
string[] str = form["MyBoolValue"].ToArray();
//the first solution
if (str.Length > 1)
{
//MyBoolValue is true
}
else {
//MyBoolValue is false
}
//the second solution
if (str[0].Equals("true"))
{
//MyBoolValue is true
}
else
{
//MyBoolValue is false
}
return View();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句