这是我的路线配置:
routes.MapRoute(
name: "AdsCategories",
url: "Ads/{key}",
defaults: new { controller = "Ads", action = "Index" },
//constraints: new { key = },
namespaces: new string[] { "Vprok.Controllers" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "Vprok.Controllers"}
);
如何创建约束" AdsCategories"? 我需要使用默认路由,如果在控制器中操作"广告" == {key}。
答案 0 :(得分:9)
所以基本上如果{key}
是现有操作,您希望它由默认路由处理,而不是在Index
控制器上使用Ads
操作?
为了实现这一点,您可以列出关键约束中的所有可能操作:
routes.MapRoute(
name: "AdsCategories",
url: "Ads/{key}",
defaults: new { controller = "Ads", action = "Index" },
constraints: new { key = @"^create|update|delete" },
namespaces: new string[] { "Vprok.Controllers" }
);
在此示例中,只有当网址不是AdsCategories
或ads/create
或ads/update
时,ads/delete
路由才会匹配。例如,ads/foobar
将匹配。
答案 1 :(得分:1)
取出以下代码:
routes.MapRoute(
name: "AdsCategories",
url: "Ads/{key}",
defaults: new { controller = "Ads", action = "Index" },
//constraints: new { key = },
namespaces: new string[] { "Vprok.Controllers" }
);
在广告控制器上创建索引actionresult并为其添加id参数! DONE