我在 MVC4 中的路线遇到问题。
我有一些动作存在于特定产品之外,还有更多存在于用户选择的产品中。为了适应我已经映射了两条路线的行动
context.MapRoute(
"CMS_product",
"CMS/{productId}/{controller}/{action}/{id}",
new { controller = MVC.CMS.Home.Name, action = MVC.CMS.Home.ActionNames.Index, productId = default(Guid).ToString(), id = UrlParameter.Optional },
new string[] { "Areas.CMS.Controllers" }
);
context.MapRoute(
"CMS_default",
"CMS/{controller}/{action}/{id}",
new { controller = MVC.CMS.Home.Name, action = MVC.CMS.Home.ActionNames.Index, id = UrlParameter.Optional },
new string[] { "Areas.CMS.Controllers" }
);
因此,虽然这适用于泛型,但我的所有路由都不会再匹配默认路由,而不是获取类似的 URL
~/CMS/产品/列表
在产品之外操作时,我会得到这样的网址。
~/CMS/00000000-0000-0000-0000-000000000000/产品/列表
另一个注意事项:我尝试将 Prodcut/List 硬编码为路由,并将其放在 CMS_product 之前,希望它会在其他 url 之前匹配。我觉得我必须忽略一些简单的事情。