【发布时间】:2014-06-09 03:39:45
【问题描述】:
我正在尝试在 WEB API 中使用 AttributeRouting 来实现版本控制。我在控制器下定义了两个文件夹,分别称为 v1 和 v2。我在每个文件夹中有多个控制器。在产品控制器中,我定义了
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}
);
我的产品控制器看起来像
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
}
}
有人可以建议或提供一个示例链接以使用属性路由实现版本控制
【问题讨论】:
标签: c# asp.net asp.net-web-api attributerouting