【发布时间】:2011-09-28 06:59:13
【问题描述】:
我最近启动了一个 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 中更改为经典模式,但这并没有什么不同。也没有使用旧的 Cassini 而不是 IIS Express。
任何想法我做错了什么?
干杯,
马特
【问题讨论】:
标签: c# asp.net visual-studio-2010 url-routing iis-express