Я недавно запустил веб-приложение и решил использовать в нем 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);
}
Приложение работает на IIS Express от VS.Виртуальная папка - /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.
Есть идеи, что я делаю не так?
Ура,
Мэтт