2011-05-27 7 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 यहां जांचें .. –

उत्तर

31

आपको AllowRating संपत्ति true पर सेट करना चाहिए, अधिमानतः नियंत्रक या मॉडल में।
अन्य इनपुट की तरह, चेकबॉक्स का राज्य संपत्ति के मूल्य को दर्शाता है।

+0

यह सही उत्तर है। मैंने इसे पहले ही तय कर दिया है। – kheya

11

अपने अंतिम पंक्ति में वाक्य रचना सही है।

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

यह निश्चित रूप से काम करना चाहिए। यह सही वाक्यविन्यास है। यदि आपके पास मौजूदा मॉडल है और AllowRating को सत्य पर सेट किया गया है तो एमवीसी स्वचालित रूप से चेक की गई विशेषता को जोड़ देगा। अगर AllowRating को गलत पर सेट किया गया है तो एमवीसी विशेषता को जोड़ नहीं पाएगा, हालांकि वांछित अगर आप उपरोक्त वाक्यविन्यास का उपयोग कर सकते हैं।

+0

किसी भी तरह से यह चेकबॉक्स को पूर्व निर्धारित नहीं कर रहा है। मेरे पास मॉडल में यही है: सार्वजनिक बूल AllowComments {get; सेट; } – kheya

+0

नए {@checked = "check} वाक्यविन्यास का उपयोग करने से थोड़ा अजीब व्यवहार होगा जब आपके पृष्ठ में सत्यापन त्रुटियां होंगी: जब आप ब्राउज़र में इसे अनचेक करते हैं, तो फॉर्म सबमिट करें और फिर उसी फॉर्म को फिर से प्रस्तुत करें (सत्यापन त्रुटि संदेश दृश्यमान के साथ), तो चेकबॉक्स को चेक किया जाएगा, है ना? – TweeZz

4

आप अपने नियंत्रक या मॉडल से सत्य में संपत्ति AllowRating सेट

 @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

यह मूल पोस्टर के तीसरे प्रयास के समान ही प्रतीत होता है; क्या आप वाकई यह जवाब वास्तव में कुछ लाते हैं? –

4

यह मेरे लिए काम करता है:

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

तुम सच में एचटीएमएल सहायकों का उपयोग करना चाहता है:

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

सी # कोड

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) ; 
संबंधित मुद्दे