2012-02-03 7 views
1

Я хочу показать модальное окно, когда пользователь нажимает на действие, требующее аутентификации. Я видел этот вопрос и ответ: ASP.NET MVC Authorize Attribute to launch a modal?Авторизовать Атрибут и модальный диалог

я получаю PopupAuthorizeAttribute от ответа и в файле Site.Master писал:

<% if((bool)(ViewData["OpenAuthorizationPopup"] ?? true)) { %> 
<script type="text/javascript"> 
alert("Login needed")</script> **for test 
<% } %> 

Сообщение показывает только при загрузке страницы. Но когда я нажимаю на действие (с PopupAuthorize), действие все равно.

ответ

0

Вы можете overrideOnAuthorization() на пользовательском PopupAuthorize атрибута и их можно перенаправить на любое действие любого из контроллеров, которые могут вернуть желаемый ActionResult или JsonResult, например, что вы можете совать в модальном.

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext); 
    filterContext.Result = new RedirectResult(urlHelper.Action("Denied", "Access")); 
}