首页 > 解决方案 > 如何通过查询参数值运行 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();
}
....

标签: c#asp.net-web-apicontrollerroutes

解决方案


[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


推荐阅读