दिलचस्प पोस्ट
विंडो आइकन सेट करें कैसे एसएसएल certs के विषय alernative नाम जोड़ने के लिए? पोर्ट 80 (उबंटू / लिनोड) के साथ नोड.जेएस चलाते समय सर्वश्रेष्ठ अभ्यास अजगर sqlite3 में मौजूदा डीबी फ़ाइल मेमोरी में कैसे लोड करें? मेरी CSS3 मीडिया मोबाइल उपकरणों पर काम क्यों नहीं कर रही है? Html टेबल के लिए डेटालेट डुप्लिकेट्स को सूची से <T> सी # में हटाएं PHP: यूनिकोड कोडपॉइंट को यूटीएफ -8 में कनवर्ट करें कोणीय फ़िल्टर काम करता है, लेकिन "10 $ डाइजेस्ट पुनरावृत्तियों पर पहुंच" Matplotlib टिकटिक लेबल फ़ॉन्ट आकार छोटे बनाते हैं UIImage का पिक्सेल रंग प्राप्त करें एंड्रॉइड स्टूडियो: डेमन प्रक्रिया शुरू करने में असमर्थ सी ++ में एक मैट्रिक्स को स्थानांतरित करने का सबसे तेज़ तरीका क्या है? सी # में कच्चे छवि बाइट सरणी में प्रवेश छवि OLE वस्तु परिवर्तित करें सी में साधा सरणी

कैसे चेक बॉक्स राज्य सहित MVC में नियंत्रक के लिए IEnumerable सूची पारित करने के लिए?

मेरे पास एक एमवीसी अनुप्रयोग है जिसमें मैं एक मॉडल का उपयोग कर रहा हूं:

public class BlockedIPViewModel { public string IP { get; set; } public int ID { get; set; } public bool Checked { get; set; } } 

अब मेरे पास एक ऐसी सूची बांटने के लिए एक दृश्य है:

 @model IEnumerable<OnlineLotto.Web.Models.BlockedIPViewModel> @using (Html.BeginForm()) { @Html.AntiForgeryToken() } @foreach (var item in Model) { <tr> <td> @Html.HiddenFor(x => item.IP) @Html.CheckBoxFor(x => item.Checked) </td> <td> @Html.DisplayFor(modelItem => item.IP) </td> </tr> } <div> <input type="submit" value="Unblock IPs" /> </div> 

अब सबमिट बटन से कार्रवाई करने के लिए मेरे पास एक नियंत्रक है:

  public ActionResult BlockedIPList(IEnumerable<BlockedIPViewModel> lstBlockedIPs) { } 

लेकिन मैं नियंत्रक की कार्रवाई में आने पर lstBlockedIPs के लिए शून्य मान मिल रहा है.मैं यहाँ चेकबॉक्स स्थिति प्राप्त करने की आवश्यकता है। कृपया मदद करे।

वेब के समाधान से एकत्रित समाधान "कैसे चेक बॉक्स राज्य सहित MVC में नियंत्रक के लिए IEnumerable सूची पारित करने के लिए?"

इसके बजाय एक सूची का उपयोग करें और लूप के लिए अपने foreach लूप को प्रतिस्थापित करें:

 @model IList<BlockedIPViewModel> @using (Html.BeginForm()) { @Html.AntiForgeryToken() @for (var i = 0; i < Model.Count; i++) { <tr> <td> @Html.HiddenFor(x => x[i].IP) @Html.CheckBoxFor(x => x[i].Checked) </td> <td> @Html.DisplayFor(x => x[i].IP) </td> </tr> } <div> <input type="submit" value="Unblock IPs" /> </div> } 

वैकल्पिक रूप से आप एक संपादक टेम्प्लेट का उपयोग कर सकते हैं:

 @model IEnumerable<BlockedIPViewModel> @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.EditorForModel() <div> <input type="submit" value="Unblock IPs" /> </div> } 

और उसके बाद टेम्पलेट को परिभाषित करें ~/Views/Shared/EditorTemplates/BlockedIPViewModel.cshtml जो स्वचालित रूप से संग्रह के प्रत्येक तत्व के लिए प्रदान किया जाएगा:

 @model BlockedIPViewModel <tr> <td> @Html.HiddenFor(x => x.IP) @Html.CheckBoxFor(x => x.Checked) </td> <td> @Html.DisplayFor(x => x.IP) </td> </tr> 

इसका कारण यह है कि आप अपने नियंत्रक में अशक्त हो रहे थे, क्योंकि आपने अपने इनपुट फ़ील्ड के लिए नामकरण सम्मेलन का सम्मान नहीं किया है, क्योंकि डिफ़ॉल्ट मॉडल बाइंडर को सफलतापूर्वक एक सूची में बाँध की उम्मीद है मैं आपको following article को पढ़ने के लिए आमंत्रित करता हूं।

एक बार जब आप इसे पढ़ चुके हैं, तो मेरे उदाहरण और तुम्हारा साथ उत्पन्न HTML (और अधिक विशेष रूप से इनपुट फ़ील्ड के नाम) को देखें फिर तुलना करें और आप समझेंगे कि आपका काम क्यों नहीं करता।