c# - .net core 2表单输入表单标签帮助器用于 bool 类型不生成复选框

标签 c# asp.net-core-2.0

我有一个具有 bool 属性的模型。在编辑 View 中,它显示为我不理解的文本类型的文本字段。在 documentation它指出 bool 输入应显示该类型的复选框。

型号:

public class Person
    {  ...
       public bool? boolprop {get; set;}
    }

编辑.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">

有什么想法可以让复选框与输入标签助手一起显示吗?

最佳答案

您可以通过这样做来获取三态列表(未设置、true、false):

Html.InputFor(x=>x.boolprop)

当然,可为 null 的 bool 值 (bool?) 和 bool 值不是同一回事。我同意标签帮助器输出不是特别直观,但微软表示这是设计使然:

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

It's by design.

Imagine for example what it would mean for a bool? property to result in a checkbox . How could a user choose null when they submit a form?

关于c# - .net core 2表单输入表单标签帮助器用于 bool 类型不生成复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838645/

相关文章:

asp.net - 为什么 dotnet core [Authorize] 在设置默认值时需要一个方案

asp.net-core-2.0 - 如何扩展 ASP.NET Core 2.0 的角色以处理不同位置的不同权限?

c# - WCF 操作行为 : ApplyDispatchBehavior not being called

c# - HttpContent.ReadAsByteArrayAsync() 在 DelegatingHandler 内部失败且没有错误

c# - 不使用 keystore 的客户端证书

.net - 使用 ASP.Net Core 2 Web 应用程序使用 EF6 调用 Full 库

c# - 如何在不为每种情况使用 if 和 switch 语句的情况下重构链中的数百个条件?

c# - 如何通过 XAML 为 Enum 类型的子项设置 MenuItem 的 IsChecked 属性?

asp.net-core-2.0 - 模型验证 .Net Core 2.0 Web Api 不工作

asp.net-core - 如何创建一个按钮,当在 dotnet 核心 2) 中单击 ("Razor page"时将转到 Razor 页面