gpt4 book ai didi

c# - 具有自定义操作的 API Controller

转载 作者:行者123 更新时间:2023-12-03 21:17:23 24 4
gpt4 key购买 nike

我需要为我的 api Controller 自定义操作,例如 api/{controller}/{action}/{id}

这是我的配置

config.Routes.MapHttpRoute(
name: "DefaultMethodApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "Browse", id = RouteParameter.Optional }
);

这命中了默认路由/api/dropzone/1但是我尝试通过“ApiByAction”配置访问/api/dropzone/browse/1,但它不起作用。

最佳答案

你的路由定义的顺序很重要,确保你尊重它,因为它们的评估顺序与你声明它们的顺序相同:

config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { action = @"^(?!\d)[a-z0-9]+$" }
);

config.Routes.MapHttpRoute(
name: "DefaultMethodApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

另请注意,您可能需要在第一个路由定义中为 {action} 标记指定约束。

关于c# - 具有自定义操作的 API Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com