मुझे संपादक के बारे में एक अजीब समस्या है MVC3 से सहायक के लिए। यहां बात है: मैं एक चेकबॉक्स सूची प्रदर्शित करने की कोशिश कर रहा हूं और यह काम करता है अगर मैं टेम्पलेट नाम की व्याख्या नहीं करता हूं। हालांकि अगर मैं टेम्पलेट नाम का उपयोग करने का प्रयास करता हूं, तो यह एक अपवाद फेंकता है कि मैं जेनेरिक सूची को पास करने की कोशिश कर रहा हूं, जब मुझे बस अपना दृश्य मॉडल पास करना चाहिए। मैं इसे और अधिक समझ में आता है बनाने के लिए कुछ कोड दिखाएंगे:asp.net-mvc3 संपादक टेम्पलेट नाम समस्या
ViewModel
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
EditorFor टेम्पलेट (यह ContractTemplate कहा जाता है) मेरे विचार से
@model Models.ChkViewModel
<p>
@Html.HiddenFor(x => x.Contract)
@Html.LabelFor(x => x.ContractName , Model.ContractName)
@Html.CheckBoxFor(x => x.Checked, new { @class = "chkContract" })
</p>
अंश
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
यह ठीक काम करता है। लेकिन यह यह करने के लिए प्रयास करें:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
यह InvalidOperationException
फेंकता कह एक सरल ChkViewModel और नहीं एक GenericList ChkViewModel पारित करने के लिए है कि मैं।
मैं केवल यह पूछ रहा हूं क्योंकि मैंने एक और चेकबॉक्स सूची बनाने की कोशिश की है और मैं इसे काम नहीं कर सका (चेकबॉक्स भी प्रदर्शित नहीं करता) और जब मैंने टेम्पलेट नाम सेट करने का प्रयास किया, तो मैं कम से कम चेकबॉक्स देखें, यह उस त्रुटि को फेंक दिया।
आप टेम्पलेट नाम निर्दिष्ट क्यों करना चाहते हैं? – epzee
जैसा कि मैंने पिछले पैराग्राफ पर उल्लेख किया है, मुझे पहले इसकी आवश्यकता नहीं थी, लेकिन जब मैंने एक और उदाहरण बनाने की कोशिश की, तो यह अभी काम नहीं कर सका। इसके अलावा, यदि यह एक पैरामीटर है, तो इसका उपयोग क्यों नहीं करना चाहिए? क्या यह जानना बेहतर होगा कि मैं किस टेम्पलेट का उपयोग कर रहा हूं, विशेष रूप से? – AdrianoRR