2014-09-23 7 views
6

मैं AJAX कॉल के बाद एक दृश्य लोड करने का प्रयास कर रहा हूं। AJAX कॉल के बाद मेरी एक्शन विधि view लौटाएगी जो कॉल सफल होने के बाद लोड होने जा रही है।एएसएक्स कॉल के बाद एएसएक्स कॉल के बाद एक दृश्य प्रस्तुत करें एमवीसी

AJAX मैं

समारोह PostMethods उपयोग कर रहा हूँ (यूआरएल, fname, lname, ईमेल) {

var userRegisterViewModel = { 
    FirstName: fname, 
    LastName: lname, 
    Email: email 
}; 
$.ajax({ 
    type: 'Post', 
    dataType: "json", 
    url: url, 
    contentType: 'application/json', 
    data: JSON.stringify(userRegisterViewModel), 

// सफलता और त्रुटि कोड

});} 

मेरा AJAX एक एपीआई विधि बुला रहा है जहां मैं fname, lname और email पास कर रहा हूं। अब मेरी एपीआई विधि सफलतापूर्वक उन डेटा को डेटाबेस में संग्रहीत करती है, यदि डेटा संग्रह करने में विफल रहता है तो यह View लौटाएगा, यह एक त्रुटि संदेश लौटाएगा जिसे मैं वर्तमान दृश्य में उपयोगकर्ता को दिखा सकता हूं। त्रुटि संदेश दिखाने के लिए वर्तमान दृश्य के HTML में <spam> खाली है।

मेरे कार्रवाई विधि है:

public ActionResult RegisterAndLogin(UserRegisterViewModel model) 
    { 
     ActionResult returnNextPage = null; 
     bool successToStoreData = SomeMethod(model); 
     if (successToStoreData) 
     { 
      returnNextPage = RedirectToAction(string.Empty, "Home"); 
     } 
     else 
     { 
      //Text message to show to the user 
     } 
     return returnNextPage; 
    } 

क्या कोड मैं AXAJ और कार्रवाई विधि में यह करने के लिए लिखना चाहिए

+1

AJAX कॉल एक ही पृष्ठ पर रहने के इतने 'RedirectToAction' काम नहीं करता है को संशोधित। क्या आप एक ही पृष्ठ पर दृश्य प्रस्तुत करना चाहते हैं या यदि कोई त्रुटि नहीं है तो क्या आप किसी अन्य पृष्ठ पर रीडायरेक्ट करना चाहते हैं? –

+0

@StephenMuecke मैं किसी अन्य पृष्ठ पर रीडायरेक्ट करना चाहता हूं। लेकिन अगर और केवल तभी डेटा सफलतापूर्वक बचाता है। – Riki

+0

फिर सबमिट के साथ मानक फॉर्म का उपयोग क्यों न करें जो आपको रीडायरेक्ट करने की अनुमति देता है? यदि डेटा सही ढंग से सहेजा नहीं गया है, तो बस दृश्य वापस करें और कोई सत्यापन त्रुटियां प्रदर्शित करें। –

उत्तर

8

AJAX कॉल एक ही पृष्ठ पर रहने के इतने RedirectToAction काम नहीं करता। आप उदाहरण

[HttpPost] 
public JsonResult RegisterAndLogin(UserRegisterViewModel model) 
{ 
    bool successToStoreData = SomeMethod(model); 
    if (successToStoreData) 
    { 
    return null; // indicates success 
    } 
    else 
    { 
    return Json("Your error message"); 
    } 
} 

के लिए, JSON वापस जाने के लिए अपने नियंत्रक संशोधित करने की आवश्यकता और AJAX समारोह

$.ajax({ 
    type: 'Post', 
    dataType: "json", 
    url: url, 
    contentType: 'application/json', 
    data: JSON.stringify(userRegisterViewModel), 
    success: function(message) { 
    if (message) { 
     $('yourSpanSelector').text(message); // display the error message in the span tag 
    } else { 
     window.location.href='/YourController/YourAction' // redirect to another page 
    } 
    } 
}) 
संबंधित मुद्दे