2011-05-27 70 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) ; 
相關問題