gpt4 book ai didi

c# - 在 ASP .net WEB API 中使用属性路由进行版本控制

转载 作者:行者123 更新时间:2023-11-30 20:49:42 26 4
gpt4 key购买 nike

我正在尝试在 WEB API 中使用 AttributeRouting 实现版本控制。我在 Controller 下定义了两个文件夹,分别称为 v1 和 v2。我在每个文件夹中有多个 Controller 。在产品 Controller 中,我定义了

RoutePrefix 为 [RoutePrefix("v1/product")] 和 [RoutePrefix("v2/product")]

当我转到 URI v1/product 时它工作正常,但是 v2/product 也会执行 v1 文件夹中的代码。属性路由是否支持版本控制,或者我是否也必须做一些与路由相关的事情。我的路线定义为

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

我的产品 Controller 看起来像

namespace API.Controllers
{

[RoutePrefix("v1/product")]

public class Productv1Controller : ApiController

{

private DBContext db = new DBContext();


public dynamic Get()
{
//Gets the Products
}
}

V2产品中的代码是

namespace API.Controllers
{

[RoutePrefix("v2/product")]

public class Productv2Controller : ApiController

{

private DBContext db = new DBContext();


public dynamic Get()
{
//Gets the Products
}
}

有人可以建议或提供示例链接以使用属性路由实现版本控制

最佳答案

您需要使用 Route 属性来修饰操作,以使其工作。

[路线]
公共(public)动态 Get()
...

此外,您需要在 WebApiConfig 的 Register 方法中有 config.MapHttpAttributeRoutes();

更新

这是要点的链接,我在一个新的 Web 应用程序中使用 WebApi 5 测试了它并且它有效。 https://gist.github.com/DavidDeSloovere/11367286

关于c# - 在 ASP .net WEB API 中使用属性路由进行版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258976/

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