Лучшим решением было бы использование атрибута [HandleError]. Этот атрибут выполняет при возникновении ошибки, пользователю будет представлено представление «Ошибка». Как это работает, когда возникает ошибка, если присутствует атрибут [HandleError], ASP.NET MVC будет искать представление «Ошибка», сначала в папке представления контроллера, а затем в папке общего доступа.
Например:
[HandleError]
public class FooController : Controller {
...
}
Когда в каком-либо действии для FooController возникает ошибка, ASP.NET MVC сначала ищет в ~ / Views / Foo представление Error (представление с именем Error.aspx для механизма представления ASP.NET или Error.cshtml. для бритвы вид двигателя). Если это представление не найдено, оно будет искать в ~ / Views / Shared.
По вашему мнению, вы можете отображать общую ошибку, а также отображать любую информацию об исключениях.
См. http://blogs.msdn.com/b/gduthie/archive/2011/03/17/get-to-know-action-filters-in-asp-net-mvc-3-using-handleerror.aspx для более подробного объяснения атрибута [HandleError].