我有一个ASP.NET Web Forms网站,它使用.NET 4路由来处理自定义URL。
我们组织中的某个人决定在其中刊登带加号的网址(例如www.domain.com/this+that),所以现在我不得不修改系统以识别此网址并将其路由到正确的页面。
这是在IIS7.5上运行的.NET 4.0网站。
我已经研究过如何做到这一点,并且建议将以下内容添加到我的web.config文件中,我已经完成了。但我仍然收到IIS 404错误消息,它甚至没有进入我的自定义404错误页面。
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true">
</requestFiltering>
</security>
</system.webServer>
知道为什么这不起作用吗?
答案 0 :(得分: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");
}