2011-05-27 74 views
26

我需要在默认情况下选中一个复选框:如何在剃须刀视图中设置复选框?

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

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

http://stackoverflow.com/questions/12674572/proper-usage-of-net- mvc-html-checkboxfor检查这里.. – 2016-01-25 14:06:33

回答

31

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

+0

这是正确的答案,我已经修复了它 – kheya 2011-05-27 22:21:47

11

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

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

这应该肯定有效。这是正确的语法。如果你有一个现有的模型,AllowRating设置为true,那么MVC会自动添加checked属性。如果AllowRating设置为false,MVC将不会添加属性,但如果需要,您可以使用上述语法。

+0

不知何故它不预先选中复选框。这是我在模型中的:public bool AllowComments {get;组; } – kheya 2011-05-27 20:58:39

+0

当您的页面出现验证错误时,使用新的{@checked =“checked}语法会有点奇怪:当您在浏览器中取消选中时,请提交表单,然后再次显示相同的表单(验证错误消息可见),那么这个复选框会被提交检查,对吗? – TweeZz 2011-05-27 21:02:20

4

您设置您的控制器或模型AllowRating属性为true

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

唯一的选择是设置值控制器,如果你的观点是在 控制器动作创建再加入空模型,并设置值一样,

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

你可以用@Html.CheckBoxFor()做到这一点:

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

,或者你也可以这样做一个简单的@Html.CheckBox()

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

这似乎与原始海报的第三次尝试是一样的;你确定这个答案真的带来了什么吗? – 2015-11-25 06:33:41

4

这个工作对我来说:

<input id="AllowRating" type="checkbox" checked="@Model.AllowRating" 
style="" onchange="" /> 

如果你真的想使用HTML助手:

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

我是用剃刀做的,适合我

剃刀代码

@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); 
0

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

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

给你!

@Html.CheckBox("AllowRating", true) ; 
相关问题