C# 如何使用两个不同参数值的HttpGet方法

C# 如何使用两个不同参数值的HttpGet方法,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,如何实现以下方法? 我有两个HttpGet方法,参数值如下:- [HttpGet("{id}")] int value for route [HttpGet("{slug}")] string value for route 控制器上的路由如下所示:- [Route("api/[controller]") 路由配置:- app.UseMvc(routes => { routes.MapRoute( name: "defaultRoute", template: "{c

如何实现以下方法? 我有两个HttpGet方法,参数值如下:-

[HttpGet("{id}")] int value for route
[HttpGet("{slug}")] string value for route
控制器上的路由如下所示:-

[Route("api/[controller]")
路由配置:-

app.UseMvc(routes =>
{
   routes.MapRoute(
   name: "defaultRoute",
   template: "{controller=Posts}/{action=GetAsync}/{id?}");
});
如何确保根据路由值触发特定的HttpGet方法。在上述情况下,只有具有{id}路由的HttpGet正在工作。后者仅在前者不存在/移除时有效。如何将路由定向到具有特定标头值的方法

谢谢

使用

参考文献


参考

您可以使用控制器和操作中的属性配置路由

[Route("api/[controller]")]
    public class HomeController : BaseController
    {
      [HttpGet("[action]")]
        public IActionResult Index() => View();

       [HttpGet("[action]")]
        public IActionResult Error() => View();


       [HttpGet("[action]/{name}")]
        public IActionResult Detail(string name)
        {
            return RedirectToAction(nameof(Index));
        }
    }
您可以看到两个标记
[controller]
[action]
指示我们必须引用已声明的控制器和操作名称。在这种情况下,
“Home”
是控制器的名称,
“Detail”
是操作的名称,因此它是路由的名称

[Route("api/[controller]")]
    public class HomeController : BaseController
    {
      [HttpGet("[action]")]
        public IActionResult Index() => View();

       [HttpGet("[action]")]
        public IActionResult Error() => View();


       [HttpGet("[action]/{name}")]
        public IActionResult Detail(string name)
        {
            return RedirectToAction(nameof(Index));
        }
    }