运维开发网

路由约束asp.net mvc

运维开发网 https://www.qedev.com 2020-05-23 15:34 出处:网络 作者:运维开发网整理
这是我的Route配置: routes.MapRoute( name: "AdsCategories", url: "Ads/{key}", defaults: new { controller = "Ads", action = "Index" }, //constraints: new { key
这是我的Route配置:

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”?

我需要使用默认路由,如果控制器中的操作“Ads”== {key}.

所以基本上,如果{key}是现有的操作,您希望它由默认路由处理,而不是使用Ads控制器上的Index操作?

为了实现这一点,您可以列出键约束中的所有可能操作:

routes.MapRoute(
    name: "AdsCategories",
    url: "Ads/{key}",
    defaults: new { controller = "Ads", action = "Index" },
    constraints: new { key = @"^create|update|delete" },
    namespaces: new string[] { "Vprok.Controllers" }
);

在此示例中,仅当网址不是ads / create或ads / update或ads / delete时,AdsCategories路由才会匹配.例如,广告/ foobar将匹配.

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号