2013-11-12 4 views
1

Так что в основном у меня есть атрибут Custom Authorize, и в какой-то момент он генерирует исключение. Я хочу поймать исключение и отобразить сообщение пользователю.customerError handling asp.net mvc4

это Контроллер илит

[HandleError] 
public class TestController : BaseController 
{ 
    [CustomAuthorize("someperm, someperm2")] 
    public ActionResult GamblerUser() 
    { 
     return View(); 
    } 
} 

это код в FilterConfig

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

это код в Global.asax.cs

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 

    WebApiConfig.Register(GlobalConfiguration.Configuration); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
} 

и web.config

<customErrors defaultRedirect="~/Shared/Error" mode="On"> 
</customErrors> 

и, наконец, вид самого

@model HandleErrorInfo 

@{ 
    ViewBag.Title = "Error"; 
} 

<h2>Sorry Error Occured</h2> <br /> 
<h2>@Model.Exception.Message</h2> 

и это сообщение я получаю каждый раз, когда происходит исключение.

Ошибка выполнения Описание: При обработке запроса возникло исключение. Кроме того, при выполнении пользовательской страницы ошибки для первого исключения произошло другое исключение. Запрос был прерван.

Я знаю, что мне не хватает чего-то очень простого, но эта вещь просто дает мне головную боль. Я смотрю на множество примеров, я просто не могу заставить эту работу работать.

+0

переопределить OnException в вашем контроллере, можете ли вы попасть туда? Оказание ошибки не похоже на то, что это проблема. –

+0

Да, это удалено – Dimitri

+0

- это исключение в контексте того, которого вы ожидаете? –

ответ

1

ViewBag имеет значение null. Я бы использовал статический заголовок в html или нашел способ вокруг него, как this.