【问题标题】:How do I set a checkbox in razor view?如何在剃刀视图中设置复选框?
【发布时间】:2011-05-27 20:19:01
【问题描述】:

我需要默认选中一个复选框:

我尝试了所有这些,没有检查我的复选框 -

@Html.CheckBoxFor(m => m.AllowRating, new { @value = "true" })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "true" })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = true })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "checked"})

【问题讨论】:

标签: asp.net-mvc-3 razor


【解决方案1】:

您应该将AllowRating 属性设置为true,最好在控制器或模型中。
与其他输入一样,复选框的状态反映了属性的值。

【讨论】:

    【解决方案2】:

    你最后一行的语法是正确的。

     @Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
    

    那肯定行得通。这是正确的语法。如果您有一个现有模型并且 AllowRating 设置为 true,则 MVC 将自动添加选中的属性。如果 AllowRating 设置为 false,MVC 将不会添加该属性,但是如果需要,您可以使用上述语法。

    【讨论】:

    • 不知何故它没有预先选择复选框。这就是我在模型中所拥有的: public bool AllowComments { get;放; }
    • 使用新的 { @checked = "checked } 语法在您的页面出现验证错误时会表现得有些奇怪:当您在浏览器中取消选中它时,提交表单,然后再次呈现相同的表单(显示验证错误消息),那么复选框将被选中,对吧?
    【解决方案3】:

    这对我有用:

    <input id="AllowRating" type="checkbox" @(Model.AllowRating?"checked='checked'":"")    style="" onchange="" />
    

    如果你真的想使用 HTML Helpers:

    @Html.CheckBoxFor(m => m.AllowRating, new { @checked = Model.AllowRating})
    

    还要考虑到,如果 m.AllowRating 为 false,它将无法设置为您的示例中检查的状态。

    【讨论】:

    • 第一个例子不正确。任何时候出现选中的属性,即使它设置为 false 或空字符串,也将是 true。
    • @Ben 这样可以避免这个问题:&lt;input type="checkbox" @(Model.AllowRating ? "checked='checked'" : "") /&gt;
    【解决方案4】:

    您可以使用@Html.CheckBoxFor()

    @Html.CheckBoxFor(m => m.AllowRating, new{@checked=true });
    

    或者您也可以使用简单的@Html.CheckBox()

    @Html.CheckBox("AllowRating", true) ;
    

    【讨论】:

    • 这好像和原贴的第三次尝试一样;你确定这个答案真的带来了什么吗?
    【解决方案5】:

    您从控制器或模型中将 AllowRating 属性设置为 true

          @Html.CheckBoxFor(m => m.AllowRating, new { @checked =Model.AllowRating })
    

    【讨论】:

      【解决方案6】:
      <input type="checkbox" @( Model.Checked == true ? "checked" : "" ) />
      

      【讨论】:

        【解决方案7】:

        唯一的选项是在控制器中设置值,如果您的视图是 Create 然后在 控制器动作添加空模型,并设置值,如,

        Public ActionResult Create()
        {
        UserRating ur = new UserRating();
        ur.AllowRating = true;
        return View(ur);
        } 
        

        【讨论】:

          【解决方案8】:

          如果我们在模型中设置“真”,它总是真。但是我们想为我的复选框设置选项值,我们可以使用它。这里重要的是复选框“AllowRating”的名称,如果不是当我们发布未传入数据库的值时,它必须是模型中var的名称。 形式:

          @Html.CheckBox("NameOfVarInModel", true) ;
          

          给你!

          @Html.CheckBox("AllowRating", true) ;
          

          【讨论】:

            【解决方案9】:

            我遇到了同样的问题,幸运的是我找到了下面的代码

            @Html.CheckBoxFor(model => model.As, htmlAttributes: new { @checked = true} )
            

            Check Box Checked By Default - Razor Solution

            【讨论】:

              【解决方案10】:

              我是用 Razor 做的,对我有用

              剃刀密码

              @Html.CheckBox("CashOnDelivery", CashOnDelivery) (This is a bit or bool value) Razor don't support nullable bool
              @Html.CheckBox("OnlinePayment", OnlinePayment)
              

              C#代码

               var CashOnDelivery = Convert.ToBoolean(Collection["CashOnDelivery"].Contains("true")?true:false);
               var OnlinePayment = Convert.ToBoolean(Collection["OnlinePayment"].Contains("true") ? true : false);
              

              【讨论】:

                猜你喜欢
                • 2018-02-19
                • 2011-11-25
                • 2017-07-30
                • 1970-01-01
                • 2018-12-11
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多