Asp.net MVC 4 перенаправить, когда пользователю нужно обновить информацию - PullRequest
0 голосов
/ 29 декабря 2018

К любому действию я добавляю код в переопределенный метод onActionExecuting, который проверяет, обновила ли пользователь всю информацию учетной записи, если нет, затем перенаправляет на действие / страницу, которую пользователь не может обойти, если он не обновит свою информацию.

На этой странице мы получаем информацию через вызовы Ajax, но, поскольку onActionExecuting выполняет проверку, любой вызов API через ajax будет перенаправлен на страницу / действие, поэтому форма, которую пользователь должен использовать для обновления информации, не будет работать из-зачто.

Как решить проблему?

```
protected override void OnActionExecuting(
    ActionExecutingContext filterContext)
    {
        Employee user = GetCurrentUser();            
        ViewBag.User = user;
        bool shouldUpdateUserInfo = false;
        if (user != null)
        {
            shouldUpdateUserInfo = user.UpdatedTime == null || NotifyUserInfoUpdateSince > user.UpdatedTime;
            if (shouldUpdateUserInfo)
            {
                var rvd = new RouteValueDictionary
                {
                    { "action", "UpdateUserInfo" },
                    { "controller", "Account" },
                    { "returnUrl", Request.Url.AbsolutePath }
                };

                filterContext.Result = new RedirectToRouteResult(rvd);
            }
        }
        base.OnActionExecuting(filterContext);
    }
```
...