MVC маршрут к содержимому, чтобы избежать совпадения других маршрутов? - PullRequest
0 голосов
/ 20 марта 2020

В моем проекте MVC есть маршрут, подобный следующему:

routes.Add("MyRoute", new MyRoute("{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }));

У меня также есть несколько пакетов (здесь отображается только конструктор с URL):

new Bundle("~/Scripts/companyname", typeof(JsMinify));
new Bundle("~/Content/themes/companyname/css", typeof(Microsoft.Web.Optimization.CssMinify));
new Bundle("~/Content/skin/css", typeof(Microsoft.Web.Optimization.CssMinify));
new Bundle("~/Content/companyname_css", typeof(Microsoft.Web.Optimization.CssMinify));
new Bundle("~/Content/print_css", typeof(Microsoft.Web.Optimization.CssMinify));

Я хочу эти связки для , а не должны совпадать с "MyRoute". Как мне этого добиться?

1 Ответ

0 голосов
/ 20 марта 2020

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

routes.IgnoreRoute("Content/{*pathInfo}");
routes.IgnoreRoute("Scripts/{*pathInfo}");

Эти строки говорят системе маршрутизации игнорировать URL: s, начинающиеся с Content/ и Scripts/ соответственно и имеет «что-нибудь» после /. Звездочка * в {*pathInfo} означает, что токену pathInfo должен быть присвоен остаток URL.

Я не смог определить, имеет ли значение имя pathInfo, или может быть что-либо , но похоже, что шаблону нужен там заполнитель с ведущей звездочкой, чтобы соответствовать чему-либо после /.

...