मैं निम्नलिखित मॉडल है:RadioButtonFor संपादक टेम्पलेट्स में का चयन नहीं मूल्य
public class Person
{
public string Name { get; set; }
public string Gender { get; set; }
}
मैं डिफ़ॉल्ट लिंग महिला होना चाहते हैं, तो मुझे लगता है कि कार्रवाई में स्थापित:
public ActionResult Create()
{
var model = new Person { Gender = "F" }; // default is female
return View(model);
}
अंत में, दृश्य इस तरह सबकुछ प्रस्तुत करता है:
@model Person
@using (Html.BeginForm())
{
@Html.EditorForModel()
<p><input type="submit" value="Create" /></p>
}
यह सब अपेक्षित काम करता है। अब, मान लीजिए कि एक साधारण टेक्स्टबॉक्स के बजाय, मैं लिंग को रेडियो बटन की अधिक सहज ज्ञान युक्त जोड़ी के रूप में प्रदर्शित करना चाहता हूं। तो मैं निम्नलिखित टेम्पलेट बनाने के लिए और साझा/EditorTemplates/Gender.cshtml पर सहेजें:
@model string
@Html.RadioButtonFor(model => model, "F") Female
@Html.RadioButtonFor(model => model, "M") Male
अंत में मैं [UIHint("Gender")]
साथ लिंग को सजाने।
लिंग अब ठीक से रेडियो बटन, जो बहुत अच्छा है के साथ प्रदान की गई है, लेकिन ...
समस्या
महिला नहीं रह गया है डिफ़ॉल्ट मान के रूप में चयनित पूर्व आता है और इसके बजाय मैं अंत दो रेडियो बटन खाली। क्या मैं कुछ भूल रहा हूँ?
दिलचस्प बात यह है कि, यदि मैं टेम्पलेट से RadioButtonFor
को देखने के लिए स्थानांतरित करता हूं (model => model
से model => model.Gender
बदल रहा है), तो सब कुछ अपेक्षित काम करता है। मुझे पता है कि यह एक व्यावहारिक कामकाज है, लेकिन ये टेम्पलेटेड हेल्पर्स इतनी अद्भुत, नशे की लत सुविधा है कि मैं उन्हें जाने से पहले सभी संभावनाओं को समाप्त कर दूंगा।
+1 और उत्तर। एक इलाज किया! यह बदसूरत नहीं है। अगर कुछ भी है, तो मैं अपने "@ एचटीएमएल.एडिटरफोर मॉडल्स() के धन्यवाद रखने के लिए" कुरूपता "के साथ रहूंगा!:) –
मैं मानता हूं कि यह बदसूरत नहीं है, और एक आकर्षण काम किया। – danludwig
मैंने इस विचार को लिया और उस पर विस्तार किया। मैं अपने संपादक टेम्पलेट में एक सूची <शब्दकोश <स्ट्रिंग, स्ट्रिंग >> पास करता हूं, जिसे मैंने जोड़ा गया व्यूडेटा है जिसे मैं रेडियो बटन बनाने के लिए उपयोग करता हूं। मेरा टेम्प्लेट इस तरह दिखता है – davidbitton