Почему ASP.NET MVC игнорирует мой косой черты?
-
06-07-2019 - |
Вопрос
Рассмотрим следующий маршрут:
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