c# - 如何通过查询参数值运行 ASP.NET MVC Web API 控制器方法?
问题描述
我试图基于查询参数而不是普通路由运行控制器方法(例如“:MyController\DoSomething)但出现错误。如何解决这个问题?
[Route("MyController?Command=DoTask1")]
public IHttpActionResult Task1()
{
return Ok();
}
[Route("MyController?Command=DoTask2")]
public IHttpActionResult Task2()
{
return Ok();
}
....
解决方案
[Route("[controller]")]
public class MyController : Controller
{
[HttpGet("")]
public IActionResult Hello(string command)
{
switch (command.ToLowerInvariant())
{
case "dotask1":
Task1();break;
case "dotask2":
Task2(); break;
}
return Ok();
}
private void Task1()
{
}
private void Task2()
{
}
}
这样,您将只有一个端点,并且这些路由将是有效的:
/my?command=DoTask1
/my?command=DoTask2
ETC
推荐阅读
- c# - 将数据库中的数据转换为字符串以与 Liphsoft.Crypto.Argon2,c# 一起使用
- flutter - 如何调用execute onPressed只满足一个条件
- angular - Angular 9 - 无法在延迟加载的模块上停用路由器插座
- php - laravel 本地化使用 mcamara 包在根 url 上给出 404 错误,但在其他 url 上没有
- generics - Generate Fibonacci Sequence in Compile-Time using generics
- angular - 在哪里可以找到关于如何创建 reducer 的 NgRx 版本 7 文档
- authentication - istio 特使过滤器在 minikube 中不起作用
- flutter - 子 customPaint 无法点击
- php - 将值添加到关联数组中,在循环 PHP 之后消失了 for 循环
- javascript - 有没有办法在 javascript 文件中包含 Django ModelForm?