【问题标题】:Redirect to external URI from ASP.NET MVC controller从 ASP.NET MVC 控制器重定向到外部 URI
【发布时间】:2010-12-05 16:19:20
【问题描述】:

我正在尝试从操作方法重定向到外部 url,但无法使其正常工作。有人能解释一下我的错误吗?

public void ID(string id)
    {
        string url = string.Empty;
        switch (id)
        {
            case "DB2FCB11-579F-4DA2-A68C-A6495B9BAAB5":

                url = "http://www.somesite.com";
                break;
        }
        Response.Redirect(url, true);
    }

谢谢, 克里斯

【问题讨论】:

  • 你的错误是什么?还是症状?这会去任何地方吗?

标签: asp.net-mvc url redirect


【解决方案1】:

如果您谈论的是 ASP.NET MVC,那么您应该有一个返回以下内容的控制器方法:

return Redirect("http://www.google.com");

否则,我们需要有关您在重定向中遇到的错误的更多信息。我会逐步确保网址不为空。

【讨论】:

  • 您也可以选择这样做: return new RedirectResult("yourURL", true);这几乎完全相同,但在最后为您提供了参数以指示它是否是永久重定向(HTTP 301 与其他东西,也许是 307?)
  • @Mr.Pichler 很可能是 302,但您可以随时与 Fiddler 核实。
  • Redirect(rul) 为 302,RedirectPermanent(url) 为 301。检查:stackoverflow.com/questions/17517318/…
  • 对使用本地 HTML 文件进行这项工作有什么想法吗?不起作用: > return Redirect("C:/Users/Me/Documents/test.html");
【解决方案2】:

使用 JavaScript

 public ActionResult Index()
 {
    return Content("<script>window.location = 'http://www.example.com';</script>");
 }

注意:正如@Jeremy Ray Brown 所说,这不是最佳选择,但在某些情况下您可能会发现有用。

希望这会有所帮助。

【讨论】:

  • 这样的事情可以工作,但控制器决定执行什么操作。您不需要参与脚本。
  • 信不信由你,这种方法确实帮助了我。我们有一个混合的 ASP.NET MVC / AngularJS 应用程序,其中有很多旧的 Web 表单代码。我使用了类似的东西来重定向到使用 Angular 路由的 URL。由于 Angular 路由在 URL 中遵循 # 标记,因此只能在客户端识别,因此无法对此类 URL 使用重定向。
  • @TNT 是的,你是对的,我只是提供了这个选项,这可能对其他人有用。
  • 对不起,如果我没有礼貌@stom。当我需要使用重定向运行一些脚本时,我会使用这种方法,比如在 Google Analytics 中计算一次访问。
  • 这终于奏效了。 @Yuriy 的直接重定向解决方案对我来说失败了。出于安全原因,前往我们的 MVC 应用程序的请求必须通过代理服务器 - 带有重写插件 + 重写规则的 IIS。这种组合可能会与重定向 URL 混淆。所以即。当我想从example.com/action 重定向到example.org/?search=xyz 时,使用return Redirect("https://www.example.org/?search=xyz"); 结果重定向到example.com/?search=xyz
【解决方案3】:

也许有人正在寻找的解决方案是这样的:

Response.Redirect("/Sucesso")

在视图中使用时也可以使用。

【讨论】:

    【解决方案4】:

    试试这个(我用过 Home 控制器和 Index View):

    return RedirectToAction("Index", "Home");
    

    【讨论】:

    • 这不会重定向到外部 URI,而是重定向到主控制器上的索引操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2019-01-14
    • 2013-03-11
    • 2016-10-06
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多