MapRoute index.asp не маршрутизируется на контроллер - PullRequest
0 голосов
/ 17 мая 2019

У меня есть следующий MapRoute, который работает и направляет к контроллеру 'Hotel'

 routes.MapRoute("Hotel", "en/hotels/london/victoria/my_hotel_name/", 
            new { controller = "Hotel", action = "Index" }, namespaces: new[] { "UrlRouter.Router.Controllers" } );

Однако, если пользователь вводит имя файла index.asp в путь, он не направляется к контроллеру и просто загружает фактическое содержимое в файл .ASP, чего я не хочу. Я хочу, чтобы он направлялся на контроллер, чтобы я мог контролировать, что возвращается пользователю.

Маршрут, который я пробовал, был

routes.MapRoute("Hotel", "en/hotels/london/victoria/my_hotel_name/index.asp", 
            new { controller = "Hotel", action = "Index" }, namespaces: new[] { "UrlRouter.Router.Controllers" } );

1 Ответ

0 голосов
/ 17 мая 2019

После дальнейших исследований я обнаружил следующие работы.Добавьте в web.config

 <modules>
  <remove name="UrlRoutingModule-4.0" />
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />

Затем в регистр маршрутов

    public static void RegisterRoutes(RouteCollection routes)
    {

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.RouteExistingFiles = true;

        routes.MapRoute("Hotel", "en/hotels/london/victoria/my_hotel_name/{*.*}",
            new { controller = "Hotel", action = "Index", }, namespaces: new[] { "UrlRouter.Router.Controllers" });
     }

Это позволит мне направить оба эти URL-адреса на мой контроллер отеля и вернуть представление MVC

www.mydomain.com / ru / hotels / london / victoria / my_hotel_name /

и

www.mydomain.com / en / hotels / london /victoria / my_hotel_name / index.asp

Если у кого-то есть более подходящее предложение, пожалуйста, оставьте свой ответ.

...