我的网页表单和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"
);
我是否需要为details.aspx页面编写IgnoreRoute语句?
答案 0 :(得分: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 }
);