C# Katana OWIN版本控制

C# Katana OWIN版本控制,c#,asp.net-web-api2,owin,C#,Asp.net Web Api2,Owin,我不熟悉ASP.net、Katana等,但学习速度很快。最佳实践之一是为控制器使用版本。例如: {controller}/{connection} {controller}/{connection} startup.cs: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{version}/{controller}/{conn}/{cmd}", defaults: new

我不熟悉ASP.net、Katana等,但学习速度很快。最佳实践之一是为控制器使用版本。例如:

{controller}/{connection} {controller}/{connection}

startup.cs:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
    defaults: new 
        { 
           conn = RouteParameter.Optional, 
           cmd = RouteParameter.Optional 
        }
);
ConnectionController.cs(此功能正常)

[RoutePrefix(“v1/连接”)]
公共类连接控制器:ApiController
{
公共列表Get()
{
var state=ServerState.Create();
var conList=新列表();
foreach(var act in state.ActiveRadios)
{
conList.Add(法案通信);
}
返回列表;
}
这并不重要

[RoutePrefix("v1/Connection")]
public class V1ConnectionController : ApiController 
{
    public List<RadioComConnConfig> Get()
    {
        var state = ServerState.Create();
        var conList = new List<RadioComConnConfig>();
[RoutePrefix(“v1/连接”)]
公共类V1ConnectionController:ApiController
{
公共列表Get()
{
var state=ServerState.Create();
var conList=新列表();

我缺少什么?

您可以摆脱旧式的配置路由:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
    defaults: new 
        { 
           conn = RouteParameter.Optional, 
           cmd = RouteParameter.Optional 
        }
);
并且只使用(就像你正在做的那样)

在您的
WebApiConfig
中,对以下内容进行注释:

// config.Routes.MapHttpRoute(
//     name: "DefaultApi",
//     routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
//     defaults: new 
//         { 
//            conn = RouteParameter.Optional, 
//            cmd = RouteParameter.Optional 
//         }
// );
并使用以下命令:

// Web API routes
config.MapHttpAttributeRoutes();
控制器顶部的路由前缀应如下所示:

[RoutePrefix("api/v1")]

并定义行动路线:

[Route("Connection")]
public List<RadioComConnConfig> Get()
{
}
[路由(“连接”)]
公共列表Get()
{
}

效果很好。我唯一遇到问题的是方法的参数,但很快就解决了。谢谢!
[RoutePrefix("api/v2")]
[Route("Connection")]
public List<RadioComConnConfig> Get()
{
}