当用户需要更新信息时,Asp.net MVC 4重定向

时间:2018-12-29 14:14:23

标签: asp.net-mvc asp.net-mvc-4

在任何操作上,我都会在重写的onActionExecuting方法上添加代码,该方法检查用户是否更新了所有帐户信息(如果没有),然后重定向到用户无法跳过的操作/页面,除非他们更新其信息。

在该页面中,我们通过Ajax调用获取信息,但是由于onActionExecuting正在进行检查,因此通过ajax进行的所有api调用都将重定向到页面/操作,因此用户需要用来更新信息的表单将不起作用因此。

如何解决此问题?

```
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);
    }
```

0 个答案:

没有答案