Вопрос

Рассмотрим следующий маршрут:

    routes.MapRoute(
        "Service", // Route name
        "service/", // URL with parameters
        new {controller = "CustomerService", action = "Index"} // Parameter defaults
        );

Использование Url.Action (" Service " ;, " CustomerService ") создает URL-адрес / service вместо ожидаемого / service /

Есть ли способ заставить это работать, или я должен прибегнуть к реализации собственной маршрутизации, основанной на RouteBase ?

Это было полезно?

Решение

Легенден - нет немедленного решения проблемы. Возможно, вы столкнулись с сообщением в блоге Джейсона Янга О проблеме, которая очень информативна. Скотт Хансельманн разместил здесь ответ , в основном заявив, что он этого не считает это было большое дело, и если это так, вы можете использовать новый модуль перезаписи IIS7 для его решения.

В конечном счете, вы, возможно, захотите взглянуть на решение, опубликованное murad по аналогичному вопросу в StackOverflow: Конечный слеш на маршруте ASP.NET MVC

Другие советы

В событие загрузки вашей страницы добавьте:

Dim rawUrl As String = HttpContext.Current.ApplicationInstance.Request.RawUrl
If Not rawUrl.EndsWith("/") Then
    HttpContext.Current.ApplicationInstance.Response.RedirectPermanent(String.Format("~{0}/", rawUrl))
End If
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top