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