Asp.net mvc 3 如何在razor视图中设置复选框?

Asp.net mvc 3 如何在razor视图中设置复选框?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,默认情况下,我需要选中一个复选框: 我尝试了所有这些,没有检查我的复选框- @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.Che

默认情况下,我需要选中一个复选框:

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

@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"})

最后一行中的语法是正确的

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

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

您应该将
AllowRating
属性设置为
true
,最好在控制器或模型中。

与其他输入一样,复选框的状态反映属性的值。

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

      @Html.CheckBoxFor(m => m.AllowRating, new { @checked =Model.AllowRating })
唯一的选项是在控制器中设置值,如果视图是“创建”,则在 控制器操作添加空模型,并设置如下值:


您可以使用
@Html.CheckBoxFor()

或者您也可以通过一个简单的
@Html.CheckBox()

这对我很有用:

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

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

我使用Razor,对我有效

剃刀代码

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

如果我们在模型中设置“true”,它将始终为true。但是我们想为我的复选框设置选项值,我们可以使用它。这里重要的是复选框“AllowRating”的名称,当我们在数据库中发布值not pass时,它必须是模型中var的名称。 信息技术的形式:

@Html.CheckBox("NameOfVarInModel", true) ;
为了你

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

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

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



不知何故,它没有预选复选框。这就是我在模型中所做的:public bool AllowComments{get;set;}使用新的{@checked=“checked}语法,当页面出现验证错误时,其行为会有点奇怪:当您在浏览器中取消选中它时,提交表单,然后再次显示相同的表单(显示验证错误消息),则复选框将被选中,对吗?这似乎与原始海报的第三次尝试相同;您确定此答案真的带来了一些东西吗?请在此处选中。第一个示例不正确。任何时候出现选中的属性,即使它设置为false或空字符串,都将为true。@Ben这将避免该问题lem:
@Html.CheckBox("CashOnDelivery", CashOnDelivery) (This is a bit or bool value) Razor don't support nullable bool
@Html.CheckBox("OnlinePayment", OnlinePayment)
 var CashOnDelivery = Convert.ToBoolean(Collection["CashOnDelivery"].Contains("true")?true:false);
 var OnlinePayment = Convert.ToBoolean(Collection["OnlinePayment"].Contains("true") ? true : false);
@Html.CheckBox("NameOfVarInModel", true) ;
@Html.CheckBox("AllowRating", true) ;
@Html.CheckBoxFor(model => model.As, htmlAttributes: new { @checked = true} )
<input type="checkbox" @( Model.Checked == true ? "checked" : "" ) />