मैं एक कस्टम अपवाद फ़िल्टर बनाना चाहता हूं जो जेएसओएन परिणामों को वापस करने वाले नियंत्रक कार्यों में फेंकने वाले अपवादों को पकड़ लेगा।कस्टम अपवाद फ़िल्टर से JSON परिणाम कैसे वापस करें?
मैं निम्नलिखित कार्रवाई विधि refactor करने के लिए करना चाहते हैं:
public JsonResult ShowContent()
{
try
{
// Do some business logic work that might throw a business logic exception ...
//throw new ApplicationException("this is a business exception");
var viewModel = new DialogModel
{
FirstName = "John",
LastName = "Doe"
};
// Other exceptions that might happen:
//throw new SqlException(...);
//throw new OtherException(...);
//throw new ArgumentException("this is an unhandeled exception");
return
Json(
new
{
Status = DialogResultStatusEnum.Success.ToString(),
Page = this.RenderPartialViewToString("ShowContent", viewModel)
});
}
catch (ApplicationException exception)
{
return Json(new { Status = DialogResultStatusEnum.Error.ToString(), Page = exception.Message });
}
catch (Exception exception)
{
return Json(new { Status = DialogResultStatusEnum.Exception.ToString(), Page = "<h2>PROBLEM!</h2>" });
}
}
}
मुझे क्या करना चाहते हैं एक कस्टम अपवाद फ़िल्टर विशेषता है कि कार्रवाई में फेंक दिया किसी भी अपवाद पकड़ेगा बनाने है निम्न तर्क का पालन करें:
- चेक अगर वहाँ एक अपवाद
- था नहीं: वापसी
- हाँ:
- BusinessLogic अपवाद है - एक JSON परिणाम लौट
- तो अन्य बिना क्रिया का अपवाद:
- लॉग
- वापसी एक अलग परिणाम कोड के साथ एक और JSON परिणाम
धन्यवाद स्वैपनेल लेकिन मैं फ़िल्टर विशेषता बनाना चाहता हूं मैं अपने नियंत्रक कार्यों को सजाने के लिए उपयोग करूंगा जो JSON लौटाते हैं - मैं ऑनएक्सप्शन विधि को ओवरराइड करने में नहीं देख रहा हूं। – Elie
आपने अपने प्रश्न में कस्टम अपवाद फ़िल्टर विशेषता के लिए अनुरोध किया है? – swapneel
क्रियाओं के लिए हैंडलएट्रिब्यूट के लिए मेरा * EDIT देखें * – swapneel