Помимо публикации здесь, я отправил Скотту письмо по электронной почте, чтобы узнать, получился ли у него хороший ответ. Он привел пример добавления ограничений к маршрутам, чтобы вы могли отвечать только на строчные URL:
public class LowercaseConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route,
string parameterName, RouteValueDictionary values,
RouteDirection routeDirection)
{
string value = (string)values[parameterName];
return Equals(value, value.ToLower());
}
И в реестре маршрутов метод:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "home", action = "index", id = "" },
new { controller = new LowercaseConstraint(), action = new LowercaseConstraint() }
);
}
Это только начало, но я бы хотел изменить генерацию ссылок с помощью таких методов, как Html.ActionLink и RedirectToAction, чтобы они соответствовали.