C# 使用ASP.NET 4.0的URL路由找不到资源错误

C# 使用ASP.NET 4.0的URL路由找不到资源错误,c#,url-routing,asp.net-webpages,C#,Url Routing,Asp.net Webpages,我正在尝试实现简单的页面路由,由于某些原因它不起作用。我已经仔细检查了几乎所有的东西,但仍然没有任何效果 我在activities.aspx上列出所有活动,并在activity details.aspx页面上显示活动的详细信息 URL路由实现后的Activities.aspx页面上的链接如下 http://localhost:49442/website/en/activity/en-US/44/31/活动标题将显示在此处 当我点击链接时,它总是显示错误消息 The resource cannot

我正在尝试实现简单的页面路由,由于某些原因它不起作用。我已经仔细检查了几乎所有的东西,但仍然没有任何效果

我在
activities.aspx
上列出所有活动,并在
activity details.aspx
页面上显示活动的详细信息

URL路由实现后的
Activities.aspx
页面上的链接如下
http://localhost:49442/website/en/activity/en-US/44/31/活动标题将显示在此处

当我点击链接时,它总是显示错误消息

The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /website/en/activity/en-US/44/31/event-title-will-go-here
我在一个多语言网站上工作,我在en下的特定文件夹下保存单独的语言特定文件,在ar下保存阿拉伯语文件,以及类似的文件夹结构

/ 
/en
/en/Activities.aspx
/en/Activity-Details.aspx
...
/ar
/ar/Activities.aspx
/ar/Activity-Details.aspx
...
/images
/css
我有其他项目的URL路由工作,但在这一个我错过了一些东西

Global.asax文件的代码

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Ignore("{resource}.exe/{*pathInfo}");

    routes.MapPageRoute("ActivityRoute", "activity/{Language}/{EventID}/{PageID}/{EventTitle}", "~/en/Activity-Details.aspx", false,
                new RouteValueDictionary {
                    { "Language", "en-US"},
                    { "EventID", "0" },
                    { "PageID", "0"},
                    { "EventTitle", "event-not-found" }},
                new RouteValueDictionary {   
                    {"Language", "[a-z]{2}-[a-z]{2}"},
                    { "EventID", "[0-9]{1,8}" },
                    { "PageID", "[0-9]{1,8}" }
                });
}
WEB.Config 我是否需要对web.config文件进行任何更改,url路由才能正常工作。我在web.config中有以下条目。我把它拆了,但它仍然不起作用

  <system.web>
    <httpModules>
      <add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule"/>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
  </system.web>

我已经在
活动详情.aspx
页面中包含了
使用System.Web.Routing
。但我不确定为什么会不断出现错误。

安装并启用。它会告诉你每条路线(没有)被击中的原因

顺便说一句,您的url的这一部分没有映射到路由中:website/en/

安装并启用。它会告诉你每条路线(没有)被击中的原因


顺便说一句,你的url的这一部分没有映射到你的路径中:website/en/

我想你明白了我没有使用完整的路径它应该像routes.MapPageRoute(“ActivityRoute”,“en/activity/{Language}/{EventID}/{PageID}/{EventTitle}”),我想你明白了我没有使用完整的路径它应该像routes.MapPageRoute(“ActivityRoute”、“en/activity/{Language}/{EventID}/{PageID}/{EventTitle}”,。。。。。