我有一个具有布尔属性的模型。在编辑视图中,它显示为文本类型的文本字段,我不明白。在documentation中,它声明布尔输入应显示该类型的复选框。
型号:
public class Person
{ ...
public bool? boolprop {get; set;}
}
Edit.cshtml:
{ ...
<div class="form-group">
<label asp-for="boolprop" class="control-label"></label>
<input asp-for="boolprop" class="form-control" />
<span asp-validation-for="boolprop" class="text-danger"></span>
</div>
}
生成的html:
<input class="form-control" type="text" id="boolprop" name="boolprop" value="True">
有关如何使用输入标记帮助程序显示复选框的任何想法吗?
答案 0 :(得分:1)
您可以通过以下方式获取三态列表(未设置,true,false):
Html.InputFor(x=>x.boolprop)
当然,可空的布尔值(bool?
)和布尔值不是一回事。我同意tag-helper输出并不是特别直观,但微软已经说过这是设计的:
https://github.com/aspnet/Mvc/issues/5667#issuecomment-271394567
它的设计。
想象一下它对bool意味着什么?属性导致复选框。用户如何在提交表单时选择null?