2013-03-09 2 views
0

Web.configAsp.net MVC4, defaultRedirect не работает?

<customErrors mode="On" defaultRedirect="~/Error/HttpError"> // is not working 
    <error redirect="~/Error/NotFound" statusCode="404" /> 
    <error redirect="~/Error/HttpError" statusCode="500" /> // also it is not working 
</customErrors> 

Контроллер Ошибка

public class ErrorController : Controller 
{ 
    // 
    // GET: /Error/ 

    public ActionResult HttpError() 
    { 
     return Content("HttpError was called!"); 
     //return View("Error"); 
    } 

    public ActionResult NotFound(string aspxerrorpath) 
    { 
     return View(); 
    } 

    public ActionResult Index() 
    { 
     return RedirectToAction("Index", "Home"); 
    } 
} 

Для ошибки 404, это называют действия NotFound а, но и для других ошибок, он никогда не ударил метод HttpError.

public ActionResult ETest() 
{ 
    throw new Exception("yahoo"); 
} 

Я запустил вышеуказанный тестовый код, он напрямую переходит на страницу Error.cshtml.

что я делаю неправильно?

ответ

0

У вас есть это в вашем FilterConfigs.cs?

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
} 

Атрибут HandleError необходим для обработки ошибок по умолчанию.

+0

Да, у меня есть. но HttpError никогда не называется. –

+0

@Expertwannabe - вы делаете удаленное соединение, правильно? Вы не видите обработчик ошибок при вызове на локальном компьютере. –

+0

@ спасибо за беспокойство, я пробовал на локальной машине, но это не работа. И я мог бы решить это, используя Application_error вместо CustomErrors. –

Смежные вопросы