ASP.NET MVC 4: Rendering a view from another controller after the original view is rendered failed (using ajax post) -


हम कहते हैं कि हमारे पास हैं:

लॉगिन कार्रवाई:

  सार्वजनिक कार्यप्रतिकृति लॉगिन (स्ट्रिंग रिटर्न यूआरएल) {ViewBag.ReturnUrl = returnUrl; वापसी देखें (); }   

पंजीकृत कार्रवाई:

  सार्वजनिक कार्यवाही रजिस्टर () {वापसी दृश्य (); }   

लॉगिन दृश्य:

  & lt; स्क्रिप्ट & gt; $ (समारोह () {var url = '@ Url.Action ( "लॉगिन", "खाता")'; $ .ajax ({URL: वह URL, टाइप करें: 'POST', डेटा: {username: "user1", पासवर्ड : पासवर्ड 1}, सफलता: फ़ंक्शन () {}, त्रुटि: फ़ंक्शन () {}})}}; & Lt; / स्क्रिप्ट & gt; @ {ViewBag.Title = "लॉगिन"; }   

रजिस्टर देखें:

  @ {ViewBag.Title = "रजिस्टर"; } & Lt; h2 & gt; रजिस्टर & lt; / h2 & gt;   

ajax पोस्ट संसाधन के लिए, इस लॉगिन के बाद कार्रवाई है

  [HttpPost] public ActionResult लॉग इन (स्ट्रिंग उपयोगकर्ता नाम, स्ट्रिंग पासवर्ड) {if (WebSecurity.Login (उपयोगकर्ता नाम, पासवर्ड) == सच) {वापसी RedirectToAction ("रजिस्टर"); Else {this.ControllerContext.HttpContext.Response.StatusCode = 404; नई रिक्त वापसी (); }}   

अब समस्या और प्रश्न ठीक है, यह मानते हुए कि जब आवेदन शुरू हुआ खाता / लॉगइन पर जाता है, और मानते हुए उपयोगकर्ता 1 के लिए खाता है I उम्मीद करेंगे कि रजिस्टर दृश्य ब्राउज़र में प्रदान किया जाएगा (मैं आईई 8 का उपयोग कर रहा हूं)। हालांकि, जो मैं देखता हूं, केवल लॉग-इन व्यू को ईवेंट के तौर पर प्रदान किया जाता है जब मैं डीबग में कोड का पता लगाता हूं, रजिस्टर दृश्य प्रोसेस किया जाता है। मुझे समझ में नहीं आ रहा है कि मुझे रजिस्टर दृश्य क्यों नहीं दिख रहा है?

क्या मेरी समझ ग़लत है या एएसपी.एन.एम.एम.सी. में कोई बग है?

क्या हो रहा है एजेक्स कॉल ही रीडायरेक्ट प्राप्त कर रहा है और नए रजिस्टर यूआरएल को दूसरा अनुरोध भेज रहा है । क्योंकि यह आपके ब्राउज़र से कोई अनुरोध नहीं है, बल्कि इसके बजाय एजेक्स, रजिस्टर पेज से प्रतिक्रिया एजेक्स कॉल की सफलता की प्रतिक्रिया में है, जो आपके साथ कुछ भी नहीं कर रही है।

देखें: < h3> समाधान

आप भी कर सकते हैं मानक form.submit का उपयोग के बजाय ajax पोस्ट, या आप कर सकते हैं एक json प्रतिक्रिया है कि यूआरएल शामिल लौट रीडायरेक्ट करने के लिए को <कोड> वापसी Json (नए {redirectTo = Url.Action ( "रजिस्टर")}); और कोड कि redirectTo संपत्ति का उपयोग करने के लिए सेट करने के लिए <अपने जावास्क्रिप्ट सफलता हैंडलर कोड> विंडो स्थान ब्राउज़र को नए URL पर नेविगेट करने के कारण।

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -