【问题标题】:Checkbox in MVC 5 ASP.netMVC 5 ASP.net 中的复选框
【发布时间】:2017-11-17 01:29:05
【问题描述】:

我在我的数据库中创建了一个“可用性”选项,它被设置为一个“位”。当我在生成的模型上制作控制器时,它以下拉列表的形式出现,其中包含 2 个值:true 和 false。我不希望这是一个下拉列表,而是一个复选框。我到处搜索,找不到一个简单的解决方法。你们中有人知道如何做到这一点吗?我的代码如下所示:

<div class="form-group">
        @Html.LabelFor(model => model.Beschikbaar, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            <div class="checkbox">
                @Html.EditorFor(model => model.Beschikbaar)
                @Html.ValidationMessageFor(model => model.Beschikbaar, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>

【问题讨论】:

  • 请包含Beschikbaar 的声明和任何属性。
  • 写html并给出名称作为属性名
  • 它只会在您的属性可以为空 (bool?) 时生成一个下拉列表,然后它将生成 3 个选项(而不是您声称的 2 个),除非您为 bool 创建了一个 EditorTemplate .但无论如何你都可以使用@Html.CheckBoxFor(m =&gt; m.Beschikbaar),如果它真的是bool

标签: asp.net-mvc checkbox


【解决方案1】:
<div class="form-group">
   @Html.LabelFor(model => model.Beschikbaar, htmlAttributes: new { @class = "control-label col-md-2" })
     <div class="col-md-10">
        <div class="checkbox">
           @Html.CheckBoxFor(model => model.Beschikbaar)
           @Html.ValidationMessageFor(model => model.Beschikbaar, "", new { @class = "text-danger" })
         </div>
     </div>
</div>

【讨论】:

    【解决方案2】:

    使用这个

    <input type="checkbox" name="Beschikbaar" value="true" data-val="true" data-val-required="The Beschikbaarfield is required."/>
    

    代替线

    @Html.EditorFor(model => model.Beschikbaar)
    

    【讨论】:

    • 不,使用 html 助手。 @Html.CheckBoxFor(x = x.Beschikbaar)
    • 使用这个有什么问题。你可以解释吗?如果您查看您所写内容的来源,那么您只会看到我所说的内容。您的服务器也不会花费资源将您的 C# 代码编译为 HTML。这是我们遵循的最佳实践。仅将 C# 用于无法在 JS 中完成的业务逻辑。其他一切使用 HTML 和 JS。
    • 有什么问题 它甚至没有value 属性,甚至不能绑定到bool 属性。它的checked 属性不是根据模型的值设置的。它不包含客户端验证所需的data-val-属性,如果ModelState无效并返回视图,用户输入的数据丢失等。强烈建议您比较Hml.CheckBoxFor()生成的html与您一起查看所有差异。 HtmlHelpers 将始终生成 2 向模型绑定和客户端/服务器端验证所需的正确 html。
    • @StephenMuecke - 我自己说得再好不过了 :)
    • @It'satrap - 助手在那里是有原因的。使用它们。像许多语言功能一样,它们可以帮助您避免误伤自己并犯下常见错误。我的猜测是,如果人们正确使用帮助器,多达 20% 的 StackOverflow 上的 MVC 问题不会发生。
    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 2019-02-14
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2011-08-03
    • 1970-01-01
    相关资源
    最近更新 更多