दिलचस्प पोस्ट
प्राइमफॉसेस इनपुट कंप्यूटर्स के माध्यम से प्राप्त यूनिकोड इनपुट दूषित हो गए हैं एनपीएम के माध्यम से बूटस्ट्रैप स्थापित करने का उद्देश्य? घर और वापस बटन ओवरराइड करना मामला एक बूलियन सच है वसंत एमवीसी में ऑब्जेक्ट से एजेक्स को ऑब्जेक्ट कैसे वापस करना Mac OS X पर pycrypto स्थापित करने के लिए पीप का उपयोग करते समय टूटी हुई पाइप त्रुटि एंड्रॉइड संसाधन – सरणियों का सरणी .NET – "अपवाद अपवाद सभी को पकड़ने" को लागू करने का सबसे अच्छा तरीका क्या है DirectoryInfo.EnumerateFiles (…) अनधिकृत एक्सेस एक्सेस (और अन्य अपवादों) का कारण बनता है पंडों read_csv dtype अग्रणी शून्य कैसे तीन बटन 'हाँ' 'नहीं' और 'रद्द करें' के रूप में एमएस वर्ड में दिखाया गया है के साथ पुष्टि की चेतावनी दिखाने के लिए सुरक्षित स्ट्रिंग टू बिगडीकल रूपांतरण क्रॉन का विंडोज संस्करण क्या है? गेट मौजूदा रेपो को एक नया और अलग रिमोट रेपो सर्वर पर रखता है? पार्सर्स में लैम्ब्डा अभिव्यक्ति क्या मैं आईएसकेएल में चयन बयान पर एक ट्रिगर लॉन्च कर सकता हूं?

ASP.NET MVC एक शब्दकोश में बाध्य है

मैं MVC के भीतर शब्दकोश मानों को बाँधने की कोशिश कर रहा हूँ

कार्रवाई के भीतर मेरे पास है:

model.Params = new Dictionary<string, string>(); model.Params.Add("Value1", "1"); model.Params.Add("Value2", "2"); model.Params.Add("Value3", "3"); 

और इस दृश्य के भीतर मेरे पास है:

 @foreach (KeyValuePair<string, string> kvp in Model.Params) { <tr> <td> <input type="hidden" name="Params.Key" value="@kvp.Key" /> @Html.TextBox("Params[" + kvp.Key + "]") </td> </tr> } 

लेकिन दृश्य प्रारंभिक मानों को प्रदर्शित नहीं करता है, और जब प्रपत्र प्रस्तुत किया जाता है तो Params संपत्ति शून्य है?

Solutions Collecting From Web of "ASP.NET MVC एक शब्दकोश में बाध्य है"

स्कॉट हंसल्मैन से आपको इस पोस्ट पर एक नज़र रखना चाहिए: http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

डिफ़ॉल्ट बाइंडर प्रारूप में शब्दकोशों को समझते हैं:

 params[0].key = kvp.key params[0].value = kvp.value 

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

आप निश्चित रूप से इस तरह अपनी खुद की बांधने की मशीन को लागू कर सकते हैं: http://siphon9.net/loune/2009/12/a-intuitive-dictionary-model-binder-for-asp-net-mvc/

एएसपी.नेट एमवीसी 4 में, डिफ़ॉल्ट मॉडल बाइंडर ठेठ डिक्शनरी इंडेक्सर सिंटैक्स property[key] का प्रयोग करके शब्दकोशों को बाइंड करेंगे।

यदि आपके पास एक Dictionary<string, string> आपके मॉडल में है, तो आप इसे सीधे निम्नलिखित मार्कअप के साथ बाँध सकते हैं:

 <input type="hidden" name="MyDictionary[MyKey]" value="MyValue" /> 

उदाहरण के लिए, यदि आप किसी शब्दकोश के तत्वों का एक सबसेट चुनने के लिए चेकबॉक्स का एक सेट का उपयोग करना चाहते हैं और उसी संपत्ति में वापस बाँधना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

 @foreach(var kvp in Model.MyDictionary) { <input type="checkbox" name="@("MyDictionary[" + kvp.Key + "]")" value="@kvp.Value" /> } 

@ एन्टीपी के जवाब पर बिल्डिंग, एक भी कम वर्बोज़ का तरीका है, एमवीसी ने अधिक से अधिक काम (कम से कम TextBoxFor() साथ एक Dictionary<string, string> – मुझे एक Dictionary<xxx, bool> पर CheckBoxFor() करने की कोशिश नहीं की है Dictionary<xxx, bool> ):

 @foreach(var kvp in Model.MyDictionary) { @Html.Label(kvp.Key); @Html.TextBoxFor(m => m.MyDictionary[kvp.Key]); }