首页 文章

URL路由不适用于ASP.NET Web表单?

提问于
浏览
0

我最近启动了一个Web应用程序,并决定在其中使用url路由(基本上只是为了进行一些练习) .

该应用程序是.NET4,我正在使用VS2010 SP1和IIS Express(集成管道) .

问题是,当我运行应用程序时,只要路径URL中没有参数,路由就可以正常工作 . 如果有参数,那么我得到404 .

这是来自global.asax.cs的相关代码:

void RegisterRoutes(RouteCollection routes)
{
    routes.Clear();
    routes.MapPageRoute("Users_Edit", "users/view/{username}", "~/users/user_detail.aspx", false);
    routes.MapPageRoute("Users_Create", "users/create", "~/users/user-detail.aspx", false);    
}

void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

该应用程序在VS的IIS Express上运行 . 虚拟文件夹是/ cms .

如果我去 http://localhost:8888/cms/users/create ,我会按预期看到我的页面 .

如果我去 http://localhost:8888/cms/users/view/Matt 我收到404错误(来自ASP.NET不是来自IIS,所以请求进入ASP.NET管道) .

我已经尝试将以下内容添加到web.config中,但这没有任何区别:

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

我已尝试在IIS Express中更改为经典模式,但这没有任何区别 . 也没有使用好的旧卡西尼而不是IIS Express .

我有什么想法我做错了吗?

干杯,

马特

1 回答

  • 0

    似乎在非工作路线中存在拼写错误的实际页面名称 . 您在此路线中使用了 page_detail.aspx ,而在工作路线中,您使用了 page-detail.aspx - 请注意下划线与连字符 . 所以我认为应该解决这个问题,即

    routes.MapPageRoute("Users_Edit", "users/view/{username}", "~/users/user-detail.aspx", false);
    

相关问题