Как мне использовать фильтр [HandleError]
в asp.net MVC Preview 5?
Я установил customErrors в своем файле Web.config
<customErrors mode="On" defaultRedirect="Error.aspx">
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
и поместите [HandleError] над моим классом контроллера следующим образом:
[HandleError]
public class DSWebsiteController: Controller
{
[snip]
public ActionResult CrashTest()
{
throw new Exception("Oh Noes!");
}
}
Затем я позволяю своим контроллерам наследовать от этого класса и вызываю для них CrashTest (). Visual Studio останавливается из-за ошибки, и после нажатия клавиши f5 для продолжения я перенаправляюсь на Error.aspx? Aspxerrorpath = / sxi.mvc / CrashTest (где sxi - это имя используемого контроллера. Конечно, путь не может быть найден, и я получаю «Ошибка сервера в приложении '/'.» 404.
Этот сайт был перенесен с предварительного просмотра 3 на 5. Все работает (не так уж много работы для переноса), кроме обработки ошибок. Когда я создаю полностью новый проект, кажется, что обработка ошибок работает.
Идеи?
--Примечание -
Поскольку сейчас у этого вопроса более 3К просмотров, я подумал, что было бы полезно добавить то, что я использую сейчас (ASP.NET MVC 1.0). В проекте mvc contrib есть замечательный атрибут под названием «RescueAttribute», вам, вероятно, тоже стоит его проверить;)
RescueAttribute
источник: mvccontrib.code. com / SourceControl / changeset / view / - person Peter   schedule 13.01.2012