जावास्क्रिप्ट से एक्सएचआर कॉल से निपटने के दौरान मौजूदा [हैंडलरर] और [अधिकृत] विशेषताओं का लाभ उठाने का एक शानदार तरीका क्या है?asp.net mvc [handleerror] [अधिकृत] JsonResult के साथ?
तो, उदाहरण के लिए एक विधि GetJson कहें जो JsonResult लौटाता है।
जब कोई त्रुटि होती है, तो [हैंडलरर] विधि एक ViewResult वापस भेज देगी जिसे जावास्क्रिप्ट में कॉलबैक फ़ंक्शन में पुनर्प्राप्त किया जाएगा।
मैं तो संभालने के लिए और किसी भी दुर्घटनाओं रीडायरेक्ट करने के लिए, जावास्क्रिप्ट में हर जगह कस्टम कोड जगह होगा आदि
मैं क्या करना चाहते हैं क्या, [HandleError] विशेषता एक JsonResult लौट मूल अगर है कार्रवाई करने की योजना बना रहा था। यह मेरे हिस्से पर इच्छापूर्ण सोच हो सकता है।
इसी तरह, अगर एक अनधिकृत जेसन अनुरोध आता है, तो एक नया HttpUnuthorizedResult लौटने की बजाय मैं एक जेसनआरसल्ट वापस करना चाहता हूं जो मेरे क्लाइंट साइड कोड को सामान्य तरीके से चीजों को संभालने की अनुमति देता है।
क्या मैं यहां गलत पेड़ को भड़क रहा हूं? हो सकता है कि यहां तक कि एक अच्छा तरीका भी है कि एमवीसी इसे संभाल सकता है जिसे मैं अनजान हूं?
अन्य परिदृश्य इस परिदृश्य को कैसे संभालने वाले हैं?
धन्यवाद।
पीएस: मुझे एहसास है कि मैं अपना खुद का [हैंडलजेसन एरर] और [AuthorizeJson] विशेषताएं बना सकता हूं जो ViewResults के बजाय जेसन रीसेट्स लौटाते हैं, लेकिन फिर मुझे आसपास जाना होगा और जेसन को लौटने वाली किसी भी विधि पर इन्हें रखना होगा, और चिंता करें फ़िल्टर ऑर्डर इत्यादि। यह निश्चित होगा कि अगर मैं मूल विधि के हस्ताक्षर के आधार पर वही विशेषता अधिनियम अलग-अलग करने के लिए प्रतिबिंब या कुछ का उपयोग कर सकता हूं तो यह अच्छा होगा।
धन्यवाद! Request.IsAjaxRequest() बहुत उपयोगी है। मुझे नहीं पता था कि अस्तित्व में है। – Scott
यह एक विस्तार विधि है जो एमवीसी जोड़ता है। यह वास्तव में अनुरोध का हिस्सा नहीं है। –
धन्यवाद! यह एक बहुत ही सुरुचिपूर्ण तरीका है और इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए। हालांकि कन्स्ट्रक्टर की आवश्यकता नहीं है। –