/ / ajax पोस्ट के बाद मॉडल के साथ पृष्ठ प्रस्तुत करें - jquery, ajax, asp.net-mvc

ajax पोस्ट के बाद मॉडल के साथ पृष्ठ प्रस्तुत-jquery, ajax, asp.net-mvc

क्या अजाक्स पोस्ट अनुरोध करना संभव है, और नियंत्रक एक मॉडल को लौटाता है, जिसके बाद पृष्ठ को उस मॉडल के साथ प्रदान किया जाता है? यह समझने के लिए कि मेरा क्या मतलब है, कहते हैं कि हमारे पास एक सरल अजाक्स पोस्ट है:

$.ajax({
url: "/Home/PostReq",
data: JSON.stringify(data),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
dataType: "html",
cache: false,
async: true,
error: function (jqXHR, error, errorThrown) {
//display error
}
})

और गृह नियंत्रक में मेरे पास है:

[HttpPost]
public ActionResult PostReq(MyModel model)
{
//do some changes to model
//render view with new model
return View(model);
}

मुझे यह कैसे हासिल होगा? फिलहाल, यह कुछ भी नहीं करता है, पेज खुद को ताज़ा या फिर से प्रस्तुत नहीं करता है। क्या यह एक अजाक्स अनुरोध से ऐसा करना संभव है?

कारण मैं अजाक्स का उपयोग कर रहा हूं, लेकिन फॉर्म डेटा को बांधने के लिए मॉडल का उपयोग नहीं कर रहा हूं क्योंकि यह गतिशील है और जैसा कि मैं समझता हूं कि मैं मॉडल के लिए डेटा को गतिशील रूप से बांध नहीं सकता हूं।

उत्तर:

जवाब के लिए 3 № 1

एक जोड़ें success आपके लिए कॉलबैक $.ajax, यह आपको पोस्ट का परिणाम प्रदान करेगा (इस मामले में html), कुछ इस तरह है:

    $.ajax({
url: "/Home/PostReq",
data: JSON.stringify(data),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
dataType: "html",
cache: false,
async: true,
error: function (jqXHR, error, errorThrown) {
//display error
},
success: function (data, textStatus, jqXHR) {
$("body").html(data);
}
})

यह पूरे शरीर को बदलने के बजाय एक अंश के साथ आसान होगा।


जवाब के लिए 2 № 2

हाँ, यह किया जा सकता है। ध्यान रखने वाली कुछ बातें हैं

1) पोस्ट के बाद सबसे पहले दिए गए व्यू को आंशिक दृश्य नहीं पूर्ण दृश्य होना चाहिए

2) आपको अपने मुख्य दृश्य पर एक कंटेनर div डालनी होगी, जहाँ ajax कॉल से प्रतिक्रिया आंशिक रूप से दिखाई देगी, सफलता कॉलबैक है।

मेरा मतलब है, आपके मुख्य विचार में आपके पास होगा:

<div id="container">
<div>

और अंजैक्स कॉल सक्सेस फंक्शन में कंटेनर डिव में अपेंडेंस रिस्पांस जैसे:

$.ajax({
url: "/Home/PostReq",
data: JSON.stringify(data),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
async: true,
error: function (jqXHR, error, errorThrown) {
//display error
}
success: function(response) {

$("#container").html(response);
}
})