2011-02-18 11 views
6

मैंने अपने नियंत्रक में से एक में निम्न कोड का उपयोग किया;asp.net mvc AJAX पोस्ट - रीडायरेक्ट टॉक्शन काम नहीं कर रहा है

  if (Request.IsAjaxRequest()) { 
      return RedirectToAction("PreviewAndSendEmail"); 
     } 

मैंने इसे डीबग किया और यह लाइन वापस आ गया और रीडायरेक्ट नहीं हुआ। क्या यह अजाक्स के अंदर करना संभव है। बेगिनफॉर्म? यहां रेज़र कोड है;

using(Ajax.BeginForm(new AjaxOptions { LoadingElementId = "loading" })) { 

    <b>Choose E-mail Template : </b>@Html.DropDownList("emailtemps")<br /><br /> 

    <input type="submit" value="Preview & Send" /> 

    <span id="loading" style="display: none;"> 
     <img title="loading..." alt="load" src="@Url.Content("~/Content/App_Icons/gifs/loading.gif")" 
    </span> 

} 
+0

संभावित रूप से http://stackoverflow.com/questions/3534956/how-can-i-redirecttoaction-within-ajax-callback –

उत्तर

15

आप सर्वर से AJAX कार्रवाई में रीडायरेक्ट नहीं कर सकते हैं। यदि आप चाहते हैं कि आपका ब्राउज़र एजेक्स एक्शन में रीडायरेक्ट करे, तो आपको इसे जावास्क्रिप्ट से करना होगा। स्पष्ट रूप से रीडायरेक्ट करने के लिए AJAX का उपयोग बिल्कुल बेकार है। यदि आप एक सामान्य एचटीएमएल का उपयोग रीडायरेक्ट करना चाहते हैं। बेजिन फॉर्म और AJAX से परेशान न करें।

+1

टिप्पणी के लिए धन्यवाद का डुप्लिकेट। इस पर मैं आपसे सहमत हूं। मैंने लोडिंग gif दिखाने के लिए उपयोग किया था। gif – tugberk

+0

@Darin दिखाने का कोई अन्य तरीका है, मेरे पास एक एजेक्स फ़ंक्शन है जो एक क्रिया को कॉल करता है जो किसी सूची के किसी आइटम को संपादित करने के लिए किसी तत्व के साथ तत्व को अपडेट करता है। उस रूप में एक सबमिट बटन होता है जो एक और क्रिया निष्पादित करता है (सहेजें)। मैं चाहता हूं कि 'सेव' कार्रवाई के बाद, मुख्य सूची को इस आइटम के नए मानों के साथ अपडेट किया जाना चाहिए। हटाए गए बटन के साथ वही बात - किसी आइटम को हटाने के बाद, सूची अपडेट करें। – Shimmy

+0

@ डारिन डिमिट्रोव "स्पष्ट रूप से रीडायरेक्ट करने के लिए AJAX का उपयोग करना बिल्कुल बेकार है।" आपको क्या लगता है? यह किसी अन्य क्रिया विधि में मौजूद कुछ कोड को डुप्लिकेट करने से बचने के लिए बहुत उपयोगी हो सकता है। –

1

आप पूर्वावलोकन और SendMailEmail को सीधे क्यों नहीं कहते हैं? चूंकि आपको खुद को पुनर्निर्देशन की आवश्यकता नहीं है (यूआरएल में परिवर्तन, आदि), इसका उपयोग करने की कोई आवश्यकता नहीं है।

संबंधित मुद्दे