Я уже давно пытаюсь обойти эту проблему, но я не могу найти решение, которое работает для меня.Страница ошибки всегда загружается с частичным видом
Я обрабатываю все ошибки, переопределяя метод OnException в моем классе BaseController, который наследует все остальные контроллеры.
protected override void OnException(ExceptionContext filterContext)
{
filterContext.ExceptionHandled = true;
var rd = new RouteData
{
Values = { ["controller"] = "Error", ["action"] = "Index" },
DataTokens = { }
};
var error = [email protected]"Error: {filterContext.Exception.Message} in {filterContext.HttpContext.Request.FilePath}
Details:
{filterContext.Exception.StackTrace}";
_logger = LogManager.GetLogger(GetType());
_logger.Error(error + Environment.NewLine + "Temp Id: " + AppSession.TempId);
IController c = new ErrorController();
c.Execute(new RequestContext(new HttpContextWrapper(System.Web.HttpContext.Current), rd));
}
Мой контроллер ошибок довольно прост:
public ActionResult Index()
{
ViewBag.Error = "Oops.. Something went wrong";
return View("Error");
}
Он работает, страница Ошибка появляется, но он всегда загружает в частичном виде контейнера, с частичным видом, который вызвал ошибку. Вместо этого я хочу сделать правильный переадресацию только на страницу с ошибкой.
Я пытался использовать и обрабатывать ошибки таким образом, но он ведет себя точно так же. Я также пробовал обрабатывать ошибки в методе Global.asax Application_Error, который, как я знал, не имел никакого значения, но я хотел, чтобы попытался в любом случае.
Я предполагаю, что частичный вид загружается через $ .get вызов его каким-то образом завершает ответ в том же div/контейнере, который должен был загружать частичный вид.
Любая помощь будет принята с благодарностью. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Я также попытался глядя на SO для подобных сценариев, но не поста, что я нашел, имеет хорошее решение ...
Спасибо заранее.
ahh $ (document) .ajaxError! никогда не думал об этом. Я думал о передаче json в качестве ответа, но просто не знал, как обобщить обработку ошибок для всех функций ajax. Я думаю, что это может сработать. Спасибо, я отдам! – Johny
Еще раз спасибо! Это работало как прелесть. Отмечено как ответ :) – Johny