2012-12-13 11 views
5

मुझे एचटीएमएलहेल्पर, रेडियोबटन फॉर और मेरे मॉडल में एक enum के साथ समस्याएं आ रही हैं। मेरे पास दृढ़ता से टाइप किया गया दृश्य है, और मैं चाहता हूं कि चेकबॉक्स मेरे एनम संपत्ति को टॉगल करें।एमवीसी 3 रेडियोबटन के साथ enum

Enum.cs 

public enum Values{ 
    Value1, 
    Value2 
} 

Model.cs 

public class Model{ 
    public Values MyProp{ get; set; } 
; 

View.cshtml 

@Html.RadioButtonFor(model => model.MyPropi, Values.Values1) 

Controller.cs 
public ActionResult WizardFirstStep() 
{ 
    var model = new Model(); 
    return View(model); 
} 

अगर मैं नियंत्रक में MyProperty मूल्य निर्धारित करते हैं, RadioButton अपेक्षा के अनुरूप चेक किया गया है। लेकिन अगले विज़ार्ड चरण में एक पोस्ट के बाद, जो पैरामीटर के रूप में मॉडल प्राप्त करता है, संपत्ति सेट नहीं है।

यदि यह आपको समझने में मदद करेगा कि मेरा क्या मतलब है: यदि यह सी # और डब्ल्यूपीएफ होगा तो मैं एक IValueConverter का उपयोग करूंगा।

बीटीडब्ल्यू: मैं नियंत्रक को मॉडल प्राप्त करने के लिए एक HTMLHelper.ActionLink का उपयोग करता हूं। जैसा कि मैंने पहले ही बात किया है

धन्यवाद अग्रिम में

उत्तर

2

किसी भी असुविधा के लिए खेद है पर करता है। यहां पोस्ट करने के बाद, मुझे समाधान बहुत जल्दी मिला। मेरा एक्शनलिंक @ Html.BeginForm फ़ॉर्म सबमिट नहीं कर रहा था। तो मैंने अपना रेडियोबुटन बदल दिया:

@Html.RadioButtonFor(model => model.MyPropi, Values.Values1, new{ onClick = "this.form.submit();" }) 

जो मेरे नियंत्रक को सही मान प्रस्तुत करता है। इस पल के लिए यह ठीक है। हो सकता है कि एक्शनलिंक फॉर्म डेटा वापस पोस्ट कर सके।

+0

के पैरामीटर के रूप में रखने के बाद आप इस उत्तर को स्वीकार करने के रूप में चिह्नित करने पर विचार कर सकते हैं – rossipedia

2

इस प्रयास करें, यह काम करना चाहिए: int लिए डाली

@Html.RadioButtonFor(model => model.MyProp, (int)Values.Values1, model.MyProp == Values.Values1) 

सूचना, यह सुनिश्चित करता है सही मान एचटीएमएल के लिए प्रयोग किया जाता है।

EDIT: क्षमा करें, मुझे लगता है कि दृश्य लोड करते समय सही रेडियो बटन सेट करने के लिए आपको तीसरे पैरामीटर की भी आवश्यकता है।

मैं भी मान लिया MyPropi लिखने में कोई त्रुटि थी और MyProp करने के लिए इसे बदल गया है, कृपया इस सही ढंग से मेल खाता है अपने अंत

+0

मुझे डर लग रहा है, लेकिन वह काम नहीं करता । मेरी समस्या यह है कि: मेरे मॉडल में कौन सा रेडियोधन टॉगल किया गया है, इस पर निर्भर करता है कि सही मूल्य कैसे प्राप्त करें। फिलहाल मैं एक्शनलिंक के माध्यम से नियंत्रक में मॉडल को रूट कर रहा हूं। @ एचटीएमएल। एक्शनलिंक ("अगला", "जादूगर सेकेंडस्टेप", मॉडल) – csteinmueller

+1

मैं देखता हूं। तो यह काम नहीं करेगा, अगर आप काम करने के लिए बाध्यकारी मॉडल चाहते हैं तो आपको प्रत्येक चरण को अपना फॉर्म पोस्ट करना होगा। तो एक्शनलिंक के बजाय फॉर्म पोस्ट करने के लिए सबमिट बटन का उपयोग करें। मॉडल को अपनी पोस्ट विधि – musefan

-1

Aspx पृष्ठों के लिए: <%: Html.RadioButtonFor (एम => m.YourProp, अपने enum के चयनित मूल्य की तरह: demo1.enum1.value2)