【问题标题】:Response.Redirect to different domain from asp.net mvc controllerResponse.Redirect 从 asp.net mvc 控制器到不同的域
【发布时间】:2020-07-16 03:52:24
【问题描述】:

在运行中的 asp.net MVC 控制器中,我想重定向 URL,但它现在可以工作

     [System.Web.Services.WebMethod(EnableSession = true)]
        public ActionResult SearchResults()
        {
            Response.Redirect("https://hybridsoftware.net/b/error.htm?Error=test", true);
.....

我也试过假的或只有网址,但它不起作用

我也试过了

  [System.Web.Services.WebMethod(EnableSession = true)]
        public ActionResult SearchResults()
        {

            return new RedirectResult("https://hybridsoftware.net/b/error.htm?Error=test");
}

没有错误,但现在可以正常工作,它不会重定向到该页面:https://hybridsoftware.net/b/error.htm?Error=test

我正在对 SearchResults 进行 ajax 调用,并且在该操作结果中我想在 asp.net mvc 控制器 ActionResult 中重定向到此页面 https://hybridsoftware.net/b/error.htm?Error=test

【问题讨论】:

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


    【解决方案1】:

    Respone.Redirect 可用于 WebForms(ASP.NET 类)。对于 MVC 控制器,您需要返回一个 RedirectResult 实例。

    [System.Web.Services.WebMethod(EnableSession = true)]
    public ActionResult SearchResults()
    {
        return new RedirectResult("https://hybridsoftware.net/b/error.htm?Error=test");
    }
    

    鉴于有关对此控制器操作的 AJAX 调用的更新信息,您需要更新在客户端进行调用的任何内容以尊重返回的状态代码并将 window.location 设置为返回的 URI。

    【讨论】:

    • [System.Web.Services.WebMethod(EnableSession = true)] public ActionResult SearchResults() { return new RedirectResult("hybridsoftware.net/b/error.htm?Error=test"); }
    • 这不会给出错误但不起作用,它不会重定向到 hybridsoftware.net/b....
    • @user1688401 那么您需要更新您的 javascript 以根据控制器操作的响应重定向用户。
    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2011-05-30
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多