2

我有一个 ASP.NET Web Forms 网站,它使用 .NET 4 路由来处理自定义 URL。

我们组织中的某个人决定宣传一个带有加号的 URL(例如 www.domain.com/this+that),所以现在我不得不修改系统以识别此 URL 并将其路由到正确的页。

这是一个在 IIS7.5 上运行的 .NET 4.0 网站。

我已经研究过如何做到这一点,建议将以下内容添加到我已经完成的 web.config 文件中。但是我仍然收到一条 IIS 404 错误消息,它甚至没有转到我的自定义 404 错误页面。

<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
    </requestFiltering>
  </security>
</system.webServer>

知道为什么这不起作用吗?

4

1 回答 1

2

我只能根据个人经验说话,但请尝试以下其中一种:

MVC:

    [ActionName("this+that")]
    public ActionResult ThisThat()
    {
        return View("ThisThat");
    }

web.config 重定向:

<location path="this+that">
<system.webServer>
<httpRedirect enabled="true" destination="www.domain.com/this_that" httpResponseStatus="Permanent" />
</system.webServer>
</location>

更新:尽我所能。确保 web.config 看起来像这样:

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
    <system.webServer>
        <security>
            <requestFiltering allowDoubleEscaping="true" />
        </security>
    </system.webServer>

Global.asax 应该如下所示:

    protected void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("Test", "This+That", "~/Test.aspx");

    }
于 2013-09-05T01:08:53.830 回答