【问题标题】:How to set a CheckBox by default Checked in ASP.Net MVC如何在 ASP.Net MVC 中默认设置 CheckBox
【发布时间】:2013-05-08 07:55:35
【问题描述】:

我在我的 ASP.Net MVC 项目中使用 CheckBox,

我想设置checkBox默认勾选,

我的复选框是

@Html.CheckBoxFor(model => model.As, new { @checked = "checked" })

但它不起作用,,,,

【问题讨论】:

  • 将模型属性设置为 true

标签: asp.net-mvc-3


【解决方案1】:

在渲染视图的控制器操作中,您可以将模型的 As 属性设置为 true:

model.As = true;
return View(model);

在你看来很简单:

@Html.CheckBoxFor(model => model.As);

现在由于模型的 As 属性设置为 true,CheckBoxFor 助手将生成一个选中的复选框。

【讨论】:

  • 我想在不更改模型的情况下进行检查。作为控制器中的值。如何更改视图中的值
  • 实现这一点的正确方法是在控制器中设置值。这就是 CheckBoxFor 帮助器的设计方式。如果您不想遵循最佳实践,您始终可以使用硬编码的checked="checked" 属性在视图中手动生成复选框。
  • 我试过 @Html.CheckBoxFor(model => model.As, new { @checked = "true" }) 但它不起作用
  • 是的,它不起作用,因为帮助程序不支持此属性。它使用模型上 As 属性的值,正如我在回答中已经解释的那样,应该在控制器操作中设置。但是我再重复一次,如果您不想遵循这种推荐的方法,您应该手动硬编码您的复选框:<input type="checkbox" name="As" value="true" checked="checked" /><input type="hidden" name="As" value="false" />。
  • 在控制器中更改 model.as 值后,它会影响其他视图,这就是为什么我要在该特定视图中设置,
【解决方案2】:

老问题,但另一个“纯粹的剃须刀”答案是:

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

【讨论】:

  • 如果模型值为“false”(复选框未选中)则无效,如果模型值为“true”则不需要此代码,那么这段代码的意义何在?
  • 如果它为空怎么办? (bool ?)
  • 在 Create New 视图中确实很有用。如果您想创建或添加新数据,有时您需要一个默认值。例如“婚姻状况”字段 - 也许您想将“是”或“已检查”设置为表单上的默认值。
【解决方案3】:

你可以在模型的构造函数中设置你的属性

public YourModel()
{
    As = true;
}

【讨论】:

    【解决方案4】:
    @Html.CheckBox("yourId", true, new { value = Model.Ischecked })
    

    这肯定行得通

    【讨论】:

      【解决方案5】:

      另一种解决方案是使用 jQuery:

          <script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
          <script type="text/javascript">
              $(document).ready(function () {
                  PrepareCheckbox();
              });
              function PrepareCheckbox(){
                  document.getElementById("checkbox").checked = true;
              }
          </script>
      

      【讨论】:

        【解决方案6】:

        我在 Controller 中使用具有相同变量名的 viewbag。例如,如果变量名为“IsActive”并且我希望它在“创建”表单上默认为 true,则在创建操作上我设置值 ViewBag.IsActive = true;

        public ActionResult Create()
        {
            ViewBag.IsActive = true;
            return View();
        }
        

        【讨论】:

          【解决方案7】:

          我的方式是@Html.CheckBoxFor(model =&gt; model.As, new { @value= "true" })(意思是检查)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-30
            • 2011-09-04
            • 2013-01-03
            • 2011-02-05
            • 1970-01-01
            • 2019-12-15
            • 2021-12-29
            相关资源
            最近更新 更多