Проблема с маршрутизацией в ASP.NET MVC route.config - PullRequest
0 голосов
/ 23 октября 2019

У меня проблема с файлом routeConfig. Насколько я понимаю, когда он обрабатывает, он проходит и находит совпадение и не должен заботиться о порядке.

Поправь меня, если я ошибаюсь. У меня есть рабочий проект, прошло много времени с тех пор, как я его разработал, и у меня есть все мои собственные маршруты в файле routeConfig. затем в самом конце я оставил маршрут по умолчанию. Это должно было поймать любые ссылки, которые не следовали пользовательскому маршруту.

Я однажды удалил это, и он сломал сайт. Так что я оставил это в конце. Теперь в этом новом проекте я сделал то же самое. По некоторым причинам это, кажется, игнорирует маршруты. В частности, у меня есть проводник, который показывает список папок в каталоге, у которого есть собственный маршрут для получения содержимого главной папки, а затем каждая из перечисленных папок выбирается по своему содержанию.

У меня есть действие по удалению папки, и когда я пытаюсь «Удалить», я получаю страницу, которая говорит, что каталог не существует. Если я поставлю маршрут по умолчанию сверху, он будет работать. Таким образом игнорируя пользовательский маршрут. Это также мешает исследователю работать. Поэтому, когда маршрут по умолчанию находится сверху, он игнорирует то, что находится под ним. Я действительно не знаю, чего мне не хватает, но, может быть, кто-то другой может увидеть то, чего не знаю я.

Вот мой routeConfig:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Explorer",
        url: "Explorer/{*path}",
        defaults: new { controller = "Explorer",
                        action = "Index",
                        path = UrlParameter.Optional }
        );

    routes.MapRoute(
        name: "DeleteFolders",
        url:  "Explorer/DeleteTreeItem/{*path}",
           new { controller = "Explorer", action = "DeleteTreeItem", path = UrlParameter.Optional }
        );

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
}

Я также пытался опустить "path = UrlParameter.Optional", и это, похоже, не имеет значения.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...