क्या पूरे एक्शन विधि निष्पादन को छोड़ना और OnActionExecuting
में एक निश्चित स्थिति पूरी होने पर एक विशिष्ट ActionResult
वापस करना संभव है?एक्शनफ़िल्टर से एक्शन निष्पादन को कैसे छोड़ें?
उत्तर
आप इसके लिए filterContext.Result का उपयोग कर सकते हैं। यह इस तरह दिखना चाहिए:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//Check your condition here
if (true)
{
//Create your result
filterContext.Result = new EmptyResult();
}
else
base.OnActionExecuting(filterContext);
}
मेरा डाउनलोड नमूना और एमएसडीएन आलेख Filtering in ASP.NET MVC देखें।
संपत्ति को गैर-शून्य मान पर सेट करके आप OnActionExecuting
और OnResultExecuting
विधियों में फ़िल्टर निष्पादन को रद्द कर सकते हैं।
कोई भी लंबित OnActionExecuted
और OnActionExecuting
फ़िल्टर नहीं लगाए जाएंगे और चालक रद्द फ़िल्टर के लिए या लंबित फ़िल्टर के लिए OnActionExecuted
विधि को कॉल नहीं करेगा।
OnActionExecuted
पहले रन फ़िल्टर के लिए फ़िल्टर चला जाएगा। OnResultExecutingand
OnResultExecuted
फ़िल्टर सभी चलाएंगे।
नमूना से निम्न कोड दिखाता है कि कैसे एक विशिष्ट ActionResult
वापस जाने के लिए जब एक निश्चित शर्त OnActionExecuting
में पूरा किया जाता है:
if (filterContext.RouteData.Values.ContainsValue("Cancel"))
{
filterContext.Result = new RedirectResult("~/Home/Index");
Trace.WriteLine(" Redirecting from Simple filter to /Home/Index");
}
यह ध्यान दिया जाना चाहिए कि यदि आपके पास एक से अधिक फ़िल्टर हैं और फ़िल्टर मामलों का क्रम आपको अपने फ़िल्टर को पंजीकृत करते समय "ऑर्डर" पैरामीटर निर्दिष्ट करना चाहिए ताकि आप निष्पादन आदेश को नियंत्रित कर सकें क्योंकि रिक ने परिणाम के बारे में अपने विवरण में उल्लिखित किया है filterContext.Result संपत्ति व्यवहार करता है। –
अच्छा बिंदु निक - लेकिन मेरा अनुभाग फ़िल्टर ऑर्डर देखें - ऑर्डर प्रॉपर्टी केवल उसी कक्षा में फ़िल्टर पर लागू होती है। औथ हमेशा पहले, अपवाद, अंतिम चलाते हैं। – RickAndMSFT
आप नीचे दिए गए कोड का उपयोग कर सकते।
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
...
if (needToRedirect) //your condition here
{
...
filterContext.Result = new RedirectToAction(string action, string controller)
return;
}
...
}
RedirectToAction आपको स्थिति के आधार पर विशिष्ट कार्रवाई को पुनर्निर्देशित करेगा।
RedirectToAction एक विधि है (कम से कम एमवीसी 5 में) ताकि आप नया() इसे नहीं कर सकें। – rumblefx0
- 1. एक एक्शनफ़िल्टर
- 2. एक्शनफ़िल्टर से रीडायरेक्ट टॉक्शन
- 3. एक्शन फ़िल्टर निष्पादन आदेश
- 4. मैं एक्शनफ़िल्टर से मॉडलस्टेट तक कैसे पहुंचूं?
- 5. सुविधा द्वारा कस्टम एक्शन निष्पादन
- 6. हर बार जब यह हिट करता है तो विंडबग में निष्पादन से लाइन को कैसे छोड़ें?
- 7. has_secure_password मान्यताओं को कैसे छोड़ें
- 8. एचजी विलय को कैसे छोड़ें?
- 9. मैं एक कस्टम एक्शनफ़िल्टर को यूनिटटेस्ट कैसे कर सकता हूं?
- 10. पहले बच्चे को कैसे छोड़ें?
- 11. निष्पादन से रेल नियंत्रक को कैसे रोकें?
- 12. नाक: डिफ़ॉल्ट रूप से परीक्षण कैसे छोड़ें?
- 13. एक फ़ाइल को छोटा करने से छोड़ें?
- 14. एसक्यूएल सर्वर कॉलम से पहचान कैसे छोड़ें
- 15. Google मानचित्र पर मार्कर को फिर से कैसे छोड़ें?
- 16. एक हैंडलर से एसिंककोर प्रेषक को कैसे छोड़ें?
- 17. MSAccess से MSAccess खोलते समय ऑटोएक्सैक मैक्रो को कैसे छोड़ें?
- 18. प्रोग्राम के भीतर से जावा ऐप को कैसे छोड़ें
- 19. सॉकेट से जुड़े सभी कमरों को कैसे छोड़ें, Node.js
- 20. किसी प्रक्रिया से जुड़े होने पर स्ट्रेस को कैसे छोड़ें?
- 21. विम quickfix कैसे छोड़ें?
- 22. GoogleTest: परीक्षण कैसे छोड़ें?
- 23. कंट्रोलर कॉन्टेक्स्ट से एक्शन डिस्क्रिप्टर
- 24. ट्विटर बूटस्ट्रैप - एक रेखा को कैसे छोड़ें?
- 25. रेल में आरएसपीसी: पहले_फिल्टर को कैसे छोड़ें?
- 26. डिफ़ॉल्ट तर्क C++ को कैसे छोड़ें?
- 27. प्राइमफेस संवाद की पारदर्शिता को कैसे छोड़ें?
- 28. Google Analytics लोडिंग को कैसे छोड़ें?
- 29. गिट diff - diff सूची को कैसे छोड़ें
- 30. TDbGrid.OnColumn में माउस को कैसे छोड़ें
आप बेस को क्यों छोड़ते हैं। ऑक्शन निष्पादन जब आपकी हालत सच होती है? मेरे मामले में मुझे परिणाम सेट करने से पहले चलाने की जरूरत है। – xr280xr