У меня есть частичный вид, который загружает ObjectResult из процедуры SQL. Это использует встроенный метод EF.MVC 5 Jquery Load - Захват внутреннего исключения
public virtual ObjectResult<Something_Result> getSomething()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Something_Result>("getSomething");
}
Так что обычная проблема - это таймауты из базы данных, и я хотел бы показать это. Но я не могу найти это в объекте исключения из функции Ajax.Load(). В ответText я получаю только "{"message":"An error occurred while executing the command definition. See the inner exception for details."}"
и со статусом: 500
Так это простой способ получить внутреннее исключение? Вот исключение брошенного Ajax.load() функция http://i.imgur.com/ZIrTrMU.jpg А вот внутреннее исключение из EF: http://i.imgur.com/LgOhOlB.png
забыл упомянуть, что -2 является идентификатором TIMEOUT_EXCEPTION. – shwetaOnStack
Хммм Я знаю, как я мог поймать ошибку на C#, а затем вернуть ее в объект JSON. Проблема в том, что это MVC ActionResult, который возвращает PrtialView. return PartialView («_ Partial/_View», модель); И эта модель обрабатывается в представлении с образцовой ссылкой на top @model App.ViewModels.SomeRepository, поэтому не уверен, насколько легко было бы изменить это на ответ JSON? – stibay
Yo может очень хорошо вернуть ответ json от метода действия, который возвращает ActionResult.So в случае этой ошибки вы отправите ответ Json, и в противном случае вы вернете частичный вид. В обработчике успеха вашего вызова ajax вы можете определить, какой тип объекта вы получили, проверив что-то вроде 'if (data.Message! = Undefined)', а затем покажите ошибку, иначе повторите рендеринг частичного представления – shwetaOnStack