Как MVC-маршрутизация определяет путь к файлу - PullRequest
0 голосов
/ 11 декабря 2018

Как мы знаем, маршрутизация следует за маршрутами, предоставленными функцией RegisterRoutes в RouteConfig.cs, которая определяет контроллер и действие в маршрутах по умолчанию.

Мой проект имеет только маршрут по умолчанию, например:

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

Так как маршрутизация обнаруживает, что мы обращаемся к какому-либо действию или указываем на файл, такой как изображение, css или js.

1 Ответ

0 голосов
/ 12 декабря 2018

Короткий ответ: любой запрос на ресурс, который имеет.его имя напрямую обслуживается IIS без вызова маршрутизации MVC.И наоборот, запросы, которые не содержат.передаются в MVC для маршрутизации.Важно, что это просто поведение по умолчанию.

В качестве быстрого теста создайте URL для любого ресурса, который не существует в вашем проекте, такого как \asdf, и обратите внимание на ошибку 404, созданную MVC.Теперь повторите тест с \asdf.asdf и обратите внимание, что IIS генерирует ошибку 404.

Это поведение можно изменить с помощью директив в web.config.Например, см. Как маршрутизировать изображения с использованием маршрутизации ASP.Net MVC?

...