दिलचस्प पोस्ट
रिएसी ब्रॉडकास्ट रिसीवर पर गतिविधि शुरू करें std :: auto_ptr to std :: unique_ptr पायथन में ज़िप सूचियां दो दशमलव स्थानों SQL सर्वर के साथ एक संख्या लिखें क्या कोई सीएसएस अभिभावक चयनकर्ता है? नोड मॉड्यूल को स्थापित नहीं किया जा सकता जिसे Windows 7 x64 / VS2012 पर संकलन की आवश्यकता है WinForms या WPF के लिए UI को वापस इवेंट भेजने के लिए सिंक्रनाइज़ेशन कॉन्टैक्स का उपयोग करना एक div में लंबवत रूप से संरेखित करें क्या एक ईवेंट हैंडलर पहले से जोड़ा गया है? क्या एसएएस में @Emport का उपयोग करके पूरी निर्देशिका आयात करना संभव है? Linq में Enumerable.Zip एक्सटेंशन विधि का क्या उपयोग है? setResult बैकअप बटन दबाए जाने पर काम नहीं करता है एकाधिक कॉलम पर समूह का उपयोग करना सीएसएस के साथ समान ऊंचाई कॉलम कैसे एक चर से एक जेएस वस्तु संपत्ति नाम सेट करने के लिए

एक सूची में पोस्ट करना <मॉडल प्रकार> MVC3

मैं अपने दृष्टिकोण को सूची में वापस पोस्ट करने का प्रयास कर रहा हूं, हालांकि यह रिक्त रूप में आ रहा है।

तो मेरे मॉडल में वेटेन्त्र वस्तुओं की एक सूची है।

व्यायाम मॉडल

public class Exercise { public List<WeightEntry> Entries { get; set; } public int ExerciseID { get; set; } public int ExerciseName { get; set; } } 

भारोत्तोलन मॉडल

 public class WeightEntry { public int ID { get; set; } public int Weight { get; set; } public int Repetition { get; set; } } 

मेरे दृश्य में व्यायाम नाम और वेट्रिएंट्री ऑब्जेक्ट्स का एक निचला भाग है

 @model Mymvc.ViewModels.Exercise ... <span>@Model.ExerciseName</span> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <table class="left weight-record"> <tr> <th>Reps</th> <th>Weight</th> </tr> @foreach (var item in Model.Entries) { <tr> <td> @Html.EditorFor(x => item.Repetition) </td> <td> @Html.EditorFor(x => item.Weight) </td> </tr> } </table> <input type="submit" value="Save" /> } 

नियंत्रक क्रिया (पोस्ट) इस समय कुछ नहीं करता है मैं सहेजने के कोड को जोड़ने से पहले बाध्यकारी काम पाने की कोशिश कर रहा हूं।

 [HttpPost] public ActionResult WeightEntry(Exercise exercise) { try { //Add code here to save and check isvalid return View(exercise); } catch { return View(exercise); } } 

मैंने एमवीसी 2 में प्रयुक्त फार्म तत्वों के नाम से एक अंश जोड़ने के साथ कुछ छोटी चीजें देखी हैं, लेकिन मैं सोच रहा था कि क्या MVC3 कोई अलग था? मैं उम्मीद कर रहा था कि यह सभी आईडी के 0 या अशक्त के साथ अच्छी तरह से बाँध लेगा लेकिन इसके बजाय पूरी सूची शून्य है जब मैं फॉर्म पोस्ट के बाद इसका निरीक्षण करता हूं। किसी भी मदद की सराहना की है धन्यवाद।

वेब के समाधान से एकत्रित समाधान "एक सूची में पोस्ट करना <मॉडल प्रकार> MVC3"

निम्न पाश को बदलें:

 @foreach (var item in Model.Entries) { <tr> <td> @Html.EditorFor(x => item.Repetition) </td> <td> @Html.EditorFor(x => item.Weight) </td> </tr> } 

साथ में:

 @for (var i = 0; i < Model.Entries.Count; i++) { <tr> <td> @Html.EditorFor(x => x.Entries[i].Repetition) </td> <td> @Html.EditorFor(x => x.Entries[i].Weight) </td> </tr> } 

या इससे भी बेहतर, संपादक टेम्पलेट का उपयोग करें और इसके साथ पाश को प्रतिस्थापित करें:

 @Html.EditorFor(x => x.Entries) 

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

 @model WeightEntry <tr> <td> @Html.EditorFor(x => x.Repetition) </td> <td> @Html.EditorFor(x => x.Weight) </td> </tr> 

जनित इनपुट तत्वों में सही नाम होंगे और आप उन्हें अपनी पोस्ट कार्रवाई में सफलतापूर्वक वापस लाने में सक्षम होंगे।