【发布时间】:2020-06-21 18:24:27
【问题描述】:
我尝试根据查询参数而不是普通路由运行控制器方法(例如“:MyController\DoSomething)但出现错误。如何解决这个问题?
[Route("MyController?Command=DoTask1")]
public IHttpActionResult Task1()
{
return Ok();
}
[Route("MyController?Command=DoTask2")]
public IHttpActionResult Task2()
{
return Ok();
}
....
【问题讨论】:
-
你需要使用这个具体的实现吗?为什么不使用“正常”路线?如果您只想从查询参数派生命令类型,您可以创建一个接受
Command参数的端点,然后根据该参数的值调用Task1()或Task2() -
@devNull,我使用这种方式是因为客户端已经在使用这种类型的路由。我也考虑过单端点接受方式,但我认为很难控制不同的请求模型。
-
@IbnAdam 请求模型是什么意思?您传递给控制器操作或从这里返回的数据?如果输入数据 - 从您的问题中不清楚您想要将某些内容传递给控制器。如果您的意思是输出数据 - ActionResult 可以返回任何内容
标签: c# asp.net-web-api controller routes