有条件地调用具有相同 URL 和 Http Verb 的操作方法

戈文

我想创建 2 个具有相同 URL 和 Http Verb 的操作方法,但基于布尔标志有条件地仅将其中一个调用到 Web API 框架。实现这一目标的最佳方法是什么?

    [HttpPost]
    [Route("api/data/{id}")]
    public HttpResponseMessage PostV1(long id, RequestDTO1 v1) {

    }


   [HttpPost]
   [Route("api/data/{id}")]
   public HttpResponseMessage PostV2(long id, RequestDTO2 v2) {

   }

应该在运行时根据布尔标志调用 PostV1 或 PostV2。布尔标志将是功能标志或配置标志。我无法更新 URL 以包含该标志。那不在我的控制之下。

约翰吴

如果版本由在启动时读取的配置开关管理,您可以从操作方法中删除 RouteAttribute 并改为在您的global.asax.csor App_Start\RouteConfig.cs(或您的站点使用的任何内容)中定义路由使用简单if条件定义不同情况下的不同路由。

if (configSwitch)
{
    routes.MapRoute(
        "Custom",
        "api/data/{id}",
         new { 
                 controller = "MyController", 
                 action = "PostV1"
             }
    );
}
else
{
    routes.MapRoute(
        "Custom",
        "api/data/{id}",
         new { 
                 controller = "MyController", 
                 action = "PostV2"  //Notice the version difference
             }
    );
}

或(略短):

routes.MapRoute(
    "Custom",
    "api/data/{id}",
     new { 
             controller = "MyController", 
             action = configSwitch ? "PostV1" : "PostV2"
         }
);

有关更多信息,请参阅此知识库文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在操作方法中有条件地显示对话框

来自分类Dev

Asp.Net Core-具有相同名称和不同参数的多种操作方法

来自分类Dev

ServiceStack服务和DTO路由上的HTTP Verb

来自分类Dev

在MVC中是否必须将视图和操作方法命名为相同的名称?

来自分类Dev

如何查看ASP.Net MVC中调用的每个控制器和操作方法?

来自分类Dev

如何查看ASP.Net MVC中调用的每个控制器和操作方法?

来自分类Dev

WKInterfaceTable,WKInterfaceButton和操作方法

来自分类Dev

在MVC中,是否有强制要求声明视图名称和操作方法相同?

来自分类Dev

调用从操作方法返回html的方法

来自分类Dev

有条件地调用Linq扩展方法

来自分类Dev

在Chrome和Firefox中打开一定数量的标签后,没有采取任何操作方法

来自分类Dev

在生成传出URL时,在其他控制器中定位相同的操作方法

来自分类Dev

以相同的操作方法返回JSON或PartialView

来自分类Dev

在Ruby中调用具有相同名称的函数和方法

来自分类Dev

在Ruby中调用具有相同名称的函数和方法

来自分类Dev

UIPanGestureRecognizer永不调用操作方法

来自分类Dev

防止用户直接调用操作方法

来自分类Dev

不调用Web Api操作方法

来自分类Dev

从未调用过的操作方法

来自分类Dev

时间到期时调用操作方法

来自分类Dev

实现文件中的调用操作方法

来自分类Dev

有条件地更新/删除后端的文档。我是不是该?是否分配PUT,POST或DELETE http方法?

来自分类Dev

[verb]测试中的Json()方法升级到7.x后没有遵循config('app.url')

来自分类Dev

如何在URL MVC中隐藏操作方法

来自分类Dev

提交表单总是调用get操作方法,而不是post操作方法

来自分类Dev

提交表单总是调用get操作方法,而不是post操作方法

来自分类Dev

是否可以调用操作方法(从操作方法)并让 ASP.Net Core 注入 [FromQuery] 参数?

来自分类Dev

如何在URL中没有控制器名称的情况下为单个控制器中的操作方法获取不同的URL?

来自分类Dev

如何在URL中没有控制器名称的情况下为单个控制器中的操作方法获取不同的URL?

Related 相关文章

  1. 1

    在操作方法中有条件地显示对话框

  2. 2

    Asp.Net Core-具有相同名称和不同参数的多种操作方法

  3. 3

    ServiceStack服务和DTO路由上的HTTP Verb

  4. 4

    在MVC中是否必须将视图和操作方法命名为相同的名称?

  5. 5

    如何查看ASP.Net MVC中调用的每个控制器和操作方法?

  6. 6

    如何查看ASP.Net MVC中调用的每个控制器和操作方法?

  7. 7

    WKInterfaceTable,WKInterfaceButton和操作方法

  8. 8

    在MVC中,是否有强制要求声明视图名称和操作方法相同?

  9. 9

    调用从操作方法返回html的方法

  10. 10

    有条件地调用Linq扩展方法

  11. 11

    在Chrome和Firefox中打开一定数量的标签后,没有采取任何操作方法

  12. 12

    在生成传出URL时,在其他控制器中定位相同的操作方法

  13. 13

    以相同的操作方法返回JSON或PartialView

  14. 14

    在Ruby中调用具有相同名称的函数和方法

  15. 15

    在Ruby中调用具有相同名称的函数和方法

  16. 16

    UIPanGestureRecognizer永不调用操作方法

  17. 17

    防止用户直接调用操作方法

  18. 18

    不调用Web Api操作方法

  19. 19

    从未调用过的操作方法

  20. 20

    时间到期时调用操作方法

  21. 21

    实现文件中的调用操作方法

  22. 22

    有条件地更新/删除后端的文档。我是不是该?是否分配PUT,POST或DELETE http方法?

  23. 23

    [verb]测试中的Json()方法升级到7.x后没有遵循config('app.url')

  24. 24

    如何在URL MVC中隐藏操作方法

  25. 25

    提交表单总是调用get操作方法,而不是post操作方法

  26. 26

    提交表单总是调用get操作方法,而不是post操作方法

  27. 27

    是否可以调用操作方法(从操作方法)并让 ASP.Net Core 注入 [FromQuery] 参数?

  28. 28

    如何在URL中没有控制器名称的情况下为单个控制器中的操作方法获取不同的URL?

  29. 29

    如何在URL中没有控制器名称的情况下为单个控制器中的操作方法获取不同的URL?

热门标签

归档