Итак, я реализовал собственную маршрутизацию в mysite.
routes.MapRoute(
"WithFriendlyNameOnly",
"{friendlyName}",
new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"WithFriendlyNameDefault",
"{friendlyName}/{controller}",
new { controller = "Home", action = "Index", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"WithFriendlyName",
"{friendlyName}/{controller}/{action}/{id}",
new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"DefaultWithRule", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { controller = new MustNotRequireFriendlyName() }
);
Это хорошо работает локально. Я использую понятное имя для определения вашего контекста на сайте. Без этого все, что я даю вам, - это страница 404.
Моя тестовая среда - Windows 2008 Server (IIS 7.5), а мое приложение находится в такой подпапке, как эта: test.mydomain.com/mysite. Все работало нормально, пока я не сделал этот новый пользовательский URL, так что я уверен, что это не IIS или сервер. Тем не менее, мои пользовательские маршруты не работают вообще. Мои обычные маршруты работают просто отлично - как домашняя страница, некоторые информационные страницы и т. Д. Это только страницы с моей пользовательской маршрутизацией. Что я сделал не так?