c# - MVC3,PartialViews,Ajax Passing values -
यह मॉडल example.cs
नाम स्थान View_Partial_Editor है .Models {सार्वजनिक वर्ग exampleView {... सार्वजनिक स्ट्रिंग Field1 {get; सेट; } सार्वजनिक स्ट्रिंग फ़ील्ड 2 {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग फ़ील्ड 3 {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग फ़ील्ड 4 {get; सेट; } सार्वजनिक स्ट्रिंग फ़ील्ड 5 {प्राप्त करें; सेट; } ...}}
मैं इस दृश्य है example.cshtml
:
@model View_Partial_Editor.Models.ExampleView @ {Html.RenderPartial ( "EditExample", मॉडल);} @ Html.TextBoxFor (एम = & gt; m.Field1)
तो मेरे पास है इस partialView मैं इस नियंत्रक और इस संपादक है कि आंशिक मेरी समस्या यह है कि मैं नियंत्रक में एजेक्स कॉल में मॉडल के डेटा को संशोधित करना चाहता हूं, और मॉडल को संपादित करें: जो बात मैं चाहता हूँ वह अजैक्स मेथोस को कॉल भेजना है, डेटाबेस में कुछ बचा, उसके बाद संशोधित करें मॉडल, और उदाहरण के दृश्य में मैं उस मॉडल को बदलाव के साथ रखना चाहता हूं। इस क्षण में, अगर मैं अजाक्स के नतीजे के साथ आंशिक दृश्य को बदलता हूं, तो उदाहरण के दृश्य में मॉडल नहीं है संशोधित। एक और तरीका है पूर्ण उदाहरण दृश्य को बदलने के लिए, इसलिए मॉडल वहाँ प्राप्त होता है, लेकिन मुझे Html.HiddenFor का उपयोग करके कई सारे फ़ील्ड्स पास करना होगा, विचारों को बदलने के बिना इसे बनाने के लिए संभव है केवल परिवर्तनों के साथ मॉडल को वापस करना < / P> EditExample.cshtml :
@model View_Partial_Editor.Models.ExampleView @ Html.HiddenFor (एम = & gt; m.Field1) @using (Ajax.BeginForm ( "EditExample", नई AjaxOptions {InsertionMode = InsertionMode .Replace, UpdateTargetId = "partial"})) {& lt; div & gt; @ Html.EditorFor (m = & gt; मी, "संपादक", नल) & lt; / div & gt; & Lt; p & gt; & Lt; इनपुट आईडी = "बटन" प्रकार = "सबमिट करें" मान = "सहेजें" / & gt; & Lt; / p & gt; }
है ExampleController
:
नाम स्थान View_Partial_Editor.Controllers {सार्वजनिक वर्ग ExampleController: नियंत्रक {// // प्राप्त करें: / उदाहरण / सार्वजनिक कार्यवाही उदाहरण () {वापसी देखें (); } [एचटीपीपीओस्ट] पब्लिक एक्शन रिजल्ट एडिशन उदाहरण (उदाहरण उदाहरण देखें) {example.Field1 = "7"; वापसी देखें ("उदाहरण", उदाहरण); }}}
में कहा जाता है editor.cshtml
@model View_Partial_Editor.Models .ExampleView & lt; div class = "editor-label" & gt; @ एचटीएमएल.लैबेलफोर (एम = & gt; एमफिल्ड 1) & lt; / div & gt; & Lt; div class = "editor-field" & gt; @ Html.EditorFor (m = & gt; m.Field1) @ html.ValidationMessageFor (m = & gt; m.Field1) & lt; / div & gt; & Lt; div class = "editor-label" & gt; @ एचटीएमएल.लैबेलफोर (एम = & gt; एमफिल्ड 2) & lt; / div & gt; & Lt; div class = "editor-field" & gt; @ Html.EditorFor (m = & gt; m.Field2) @ html.ValidationMessageFor (m = & gt; m.Field2) & lt; / div & gt;
exampleView
में संशोधित किया गया। लेकिन जब एजाक्स ने उस मूल्य को समाप्त कर दिया जिसे मैं नियंत्रक में बदलता हूं मॉडल में बदल नहीं है
अपने एचटीटीपी पोस्ट कार्रवाई विधि में ModelState.Clear ()
कॉल करने का प्रयास करें। एचटीएमएल हेल्पर्स पहले मॉडलस्टैट में मान का उपयोग करते हैं, फिर मॉडल। यदि आप किसी पोस्ट पर मॉडल में कोई मान बदलते हैं, तो आपको मॉडलस्टैट से मूल्य साफ़ करना होगा।
Comments
Post a Comment