.net core 2表示输入表单标签助手,用于bool类型不生成复选框

时间:2018-04-15 05:01:54

标签: c# asp.net-core-2.0

我有一个具有布尔属性的模型。在编辑视图中,它显示为文本类型的文本字段,我不明白。在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">

有关如何使用输入标记帮助程序显示复选框的任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取三态列表(未设置,true,false):

Html.InputFor(x=>x.boolprop)

当然,可空的布尔值(bool?)和布尔值不是一回事。我同意tag-helper输出并不是特别直观,但微软已经说过这是设计的:

https://github.com/aspnet/Mvc/issues/5667#issuecomment-271394567

  

它的设计。

     

想象一下它对bool意味着什么?属性导致复选框。用户如何在提交表单时选择null?