दिलचस्प पोस्ट
VimScript में नेत्रहीन चयनित टेक्स्ट कैसे प्राप्त करें Python में -0400 टाइमज़ोन स्ट्रिंग के साथ दिनांक कैसे विश्लेषित करें? मोगोडीबी के साथ उप-दस्तावेज में सरणी कैसे फ़िल्टर करें मॉड्यूल स्तरीय रिटर्न स्टेटमेंट Node.js में क्यों काम करता है? जावा में जेबटन पर आप एक्शनलिस्टनर को कैसे जोड़ते हैं क्रोम पैकेज्ड ऐप आईडी को कैसे बदला जाए या हमें मेनिफ़ेस्ट। जेएसन में मुख्य फ़ील्ड की आवश्यकता क्यों है? JQuery में एक बटन का पाठ कैसे बदल सकता है? आईओएस: NSUserDefaults में एक बूलीयन का उपयोग करें मैं एंड्रॉइड डिवाइस पर SQLite डेटाबेस कैसे देखूं? स्थानीय xampp / apache सर्वर पर SSL सेट अप करना ASP.NET C # में foreach के साथ चेकबॉक्स में चयनित आइटम्स के मान कैसे प्राप्त करें? जावास्क्रिप्ट में आप एक स्ट्रिंग को कैसे बदल सकते हैं? मैं क्रम में जार गतिशील रूप से कैसे लोड करना चाहिए? Google नक्शे जैसे स्थान संवाद सक्षम कैसे दिखाएं? गतिशील ग्राफिक्स वस्तु चित्रकारी

एक सूची में पोस्ट करना <मॉडल प्रकार> 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> 

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