Как передать сообщение в вид объекта результата? - PullRequest
0 голосов
/ 02 июня 2018

При неудачной авторизации я перенаправляю пользователя обратно на страницу входа, которая работает, но я также хочу передать сообщение вместе с ним.

Я расширяю класс AuthorizeAttribute и переопределяю метод.

public class CustomAuthorize: AuthorizeAttribute
    {
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filterContext.Result = new ViewResult { ViewName = "~/Views/Login/Login.cshtml" };           
        }
    }

затем с помощью CustomeAuthorize, где я хочу предоставить доступ к авторизованным ролям.

Я пытался передать сообщение, но не работает.

1 Ответ

0 голосов
/ 02 июня 2018

Попробуйте это с помощью ViewBag:

filterContext.Result = new ViewResult { ViewName = "~/Views/Login/Login.cshtml" };     
ViewBag.ErrorMsg = "Not authorized";

В перенаправленном представлении вызовите следующее:

@ViewBag.ErrorMsg;

Или вы можете создать модель для отображения этого сообщения об ошибке следующим образом:

public class Render {
    public string Msg { get; set;}
}

В контроллере:

aRender.Msg = "Not authorized"; //aRender is an object here

Аналогично вызовите его в представлении:

@model YourProjectNameSpace.YourModel

 @Model.Msg;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...