Asp. Сетевой MVC: Как я включаю тире в своих URL?

Я хотел бы иметь тире отдельные слова в моих URL. Таким образом вместо:

/MyController/MyAction

Я хотел бы:

/My-Controller/My-Action

Действительно ли это возможно?

74
задан Jim Geurts 27 August 2008 в 14:41
поделиться

1 ответ

Вы можете создать собственный обработчик маршрута, как показано в этом блоге:

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-адресов с дефисами

15
ответ дан 24 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: