【问题标题】:IIS - ASP.NET MVC redirectionIIS - ASP.NET MVC 重定向
【发布时间】:2009-07-27 20:41:00
【问题描述】:

我有两个使用 ASP.NET MVC 的应用程序,每个应用程序都有多个控制器。

我想从应用程序 A 重定向到应用程序 B,但只针对应用程序 A(一个控制器)上的单个路由。

例如。

/applicationA/issue/* 应该重定向到 /applicationB/issue/

/applicationA/quality/ 不应重定向

IIS 重定向示例向我展示了如何单击文件/文件夹并启用重定向的示例,但我正在尝试执行路由,而不是物理路径。

我不想修改 ASP.NET 源代码(如果可能的话)。

谢谢。

编辑 - 这是在 Win2k3 上的 IIS6 中。

【问题讨论】:

    标签: asp.net-mvc iis redirect routes


    【解决方案1】:

    是的,最后一点是一个真正的警告。如果这是在 IIS7 上,那就容易 100%!

    您可以下载另一个应用程序来完成重定向工作,但编辑 MVC 应用程序并不难。假设 /issue/ 和 /quality/ 是不同的路线,为什么不这样做:

    public class MyController
    {
      public RedirectResult Issue()
      {
        //return as a redirect
        return Redirect("http://applicationb/issue");
      }
    
      public ActionResult Quality()
      {
        //This is here to show that, instead of redirecting, it returns a view.
        return View();
      }
    }
    

    【讨论】:

    • 我希望在 IIS 级别执行此操作,因此对于查看管理工具的任何人来说都是明确的。看看 UrlRewriting,我看不出使用它比仅仅改变我的 MVC 路由有什么好处,这似乎是答案。
    • 添加到列表顶部的路由,然后是返回新 RedirectResult 的操作。 IIS7 似乎解决了这个问题,但在 ASP.NET 中它比 IIS5/6 更容易。
    【解决方案2】:

    您可以使用URLRewriting.NET 根据正则表达式模式进行重定向。

    【讨论】:

    • 我同意。作为 IIS6 的解决方案,UrlRewriting.NET 可能是最好的。 @Michael,您可能要添加到答案中的网址是 urlrewriting.net/149/en/home.html
    • @dan - 谢谢,我添加了链接!
    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 2010-12-23
    • 2011-06-25
    • 2013-10-14
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多