【问题标题】:MVC custom route question: Route one level higher?MVC 自定义路由问题:路由更高一级?
【发布时间】:2010-12-09 18:51:15
【问题描述】:

我有一个 Web 应用程序,我正在使用自定义路由来路由 http://domain/MyMVCSite/MyPage.ASP 以路由到我选择的控制器/动作。

我对自定义路由不太熟悉,但就目前而言,这是我的自定义路由:

routes.MapRoute(
       "Page",
       "MyPage.ASP",
       new { controller = "KTASP", action = "KTASP", id = "" }
     );

正如我所说,这条路线:

http://{domain}/MyMVCSite/MyPage.ASP

我想让它路由:

http://{domain}/MyPage.ASP

这可能吗?我将如何调整自定义路线?

我的 MVC 站点正在部署为 IIS6 上网站的虚拟目录。

【问题讨论】:

    标签: c# asp.net-mvc routes


    【解决方案1】:

    如果没有 IIS 配置来重写对“http://{domain}/MyPage.ASP”的请求以转到您的虚拟目录,这是不可能的。

    目前,您的 Web 应用程序永远不会被考虑,因为该页面不在 IIS 中映射到的虚拟目录中。您需要在网站的根目录中包含路由(和 Web 应用程序),或者使用 URL 重写将其转发到您的 vdir。

    【讨论】:

    • 如何在 IIS 中进行配置?我的另一个选择是简单地删除 ASP 页面,并将 Response.Redirect 添加到我的 MVC 页面。这是有效的,但是它也没有传递 HttpInput 流。一旦我到达 MVC 控制器,HttpInput 流是空的。
    • @MichaelVelasquez 我会为 IIS 使用 URL Rewrite 2 模块,您可以在这里了解:forums.iis.net/1152.aspx 和这里learn.iis.net/page.aspx/734/url-rewrite-module
    • 我使用的是 IIS6,所有对 7 的引用都让我认为它只是 7 中的一个功能?
    • IIS6 有几个选项 - isapirewrite.comurlrewriter.netiirf.codeplex.com .. 第一个相当稳定且成本高,后两个是开源的,我没用过。
    • 在进入 IIS 路由之前,是否有任何方法可以将 HttpInput 流包含在 MyPage.ASP 页面上的 VBScript 调用中的 Response.Redirect 调用中?顺便说一句,我非常感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多