Смешивание WebForms и MVC5 не работает
У меня есть код ниже для моей маршрутизации для веб-форм и MVC.
MVC маршрутизация, кажется, работает нормально, но не веб-формы, когда я смешиваю оба.
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("");
//MVC
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
//WebForms
routes.MapPageRoute(
"myPage",
"page/companyInfo/{*queryvalues}",
"~/company/details.aspx"
);
Нужно ли мне писать оператор IgnoreRoute для страницы details.aspx?
1 ответ
Решение
Измените порядок маршрутов, маршрут MVC должен быть внизу, так как по умолчанию это, в общем, универсальное решение. MVC обрабатывает маршруты сверху вниз, если он находит совпадение, он прекращает поиск и направляет вас к сопоставленному маршруту.
//WebForms
routes.MapPageRoute(
"myPage",
"page/companyInfo/{*queryvalues}",
"~/company/details.aspx"
);
//MVC
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);