• Asp.Net Core Mvc3.1重定向不起作用


    一、问题描述

    前端妹纸使用Ajax调用后台接口,我这边在后台会判断用户是否登录,如果没有登录,重定向到登录页。

    后台代码:

        public class ActionFilter : IActionFilter
        {
            public void OnActionExecuting(ActionExecutingContext context)
            {
                    context.Result = new RedirectResult("~/Login/Index");
                    //context.HttpContext.Response.Redirect("~/Login/Index");
            }
        }

    而这段代码不起作用。

    二、解决

    为了证明自己的清白,所以自己写了一段测试代码去测试是否可以重定向。

    @using (Html.BeginRouteForm("Areas", new { Area = "Module", Controller = "User", Action = "GetList" }, FormMethod.Get))
    {
        <div><input type="submit"  value="跳转" /></div>}
    }

    结果证明自己是清白的,可以跳转到登录页。那么为什么前端妹纸使用ajax不能跳转呢?那写一段ajax调用测试一下

    function aa() {
            debugger 
            $.ajax({
                url: "/Module/User/GetList",
                data: "",
                type: "GET",
                dataType: "json",
                async: false,
                cache: false,
                success: function (res) {
    
                },
                error: function (e) {
    
                }
            });

    结果是不能跳转到登录页

    三、调用原因

    查看前辈写的代码,他这样写

    if (context.HttpContext.Request.IsAjaxRequest())
                                {
                                    TData obj = new TData();
                                    obj.Message = "抱歉,没有权限";
                                    context.Result = new JsonResult(obj);
                                }
                                else
                                {
                                    context.Result = new RedirectResult("~/Home/NoPermission");
                                }

    那结论就是Ajax发起请求时,重定向的工作需要前端来做;非Ajax请求时,重定向的工作后端来做。

    四、遗留问题

    具体Ajax请求时后端不能重定向的原因实在找不到了,这个问题先记录吧

  • 相关阅读:
    gin使用validator库参数校验若干实用技巧
    在gin框架中使用JWT
    使用zap接收gin框架默认的日志并配置日志归档
    gin框架路由拆分与注册
    Gin框架介绍及使用
    GO学习-(39) 优雅地关机或重启
    GO学习-(38) Go语言结构体转map[string]interface{}的若干方法
    WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案
    [ 夜间模式 ] NightVersion
    HDU1518 Square(DFS)
  • 原文地址:https://www.cnblogs.com/liuzeqi/p/14173607.html
Copyright © 2020-2023  润新知