Я хотел бы иметь тире отдельные слова в моих URL. Таким образом вместо:
/MyController/MyAction
Я хотел бы:
/My-Controller/My-Action
Действительно ли это возможно?
Вы можете создать собственный обработчик маршрута, как показано в этом блоге:
http://blog.didsburydesign.com/2010/02/how-to-allow-hyphens-in-urls-using-asp-net -mvc-2 /
public class HyphenatedRouteHandler : MvcRouteHandler{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "_");
requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "_");
return base.GetHttpHandler(requestContext);
}
}
... и новый маршрут:
routes.Add(
new Route("{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Default", action = "Index", id = "" }),
new HyphenatedRouteHandler())
);
Здесь был задан очень похожий вопрос: Поддержка ASP.net MVC для URL-адресов с дефисами