首页 > 解决方案 > 同一控制器中具有不同参数的多个端点

问题描述

自从我不得不这样做以来已经有好几年了,我一定很热!

我有我的家庭控制器:

    public ActionResult Index(string param1, string param2, string param3)
    {
        return View();
    }

    public IActionResult Index()
    {
        return View();
    }

我有 1 个 Index.cshtml 页面。

在我的启动中,cs:

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}");

            endpoints.MapControllerRoute(
                name: "default2",
                pattern: "{controller=Home}/{action=Index}/{param1}/{param2}/{param3}");
        });

我得到的错误是:

**{"error":"APP:请求匹配多个端点。

标签: asp.net-core-mvcurl-routing

解决方案


public class HomeController : Controller
{
    // hits when navigating to https://localhost:5001/one/two/three
    [HttpGet("{param1}/{param2}/{param3}")]
    public IActionResult Index(string param1, string param2, string param3)
    {
        return View();
    }

    // hits when navigating to https://localhost:5001/
    public IActionResult Index()
    {
        return View();
    }
}

并在 Startup#Configure

app.UseEndpoints(endpoints =>
{
  endpoints.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
});

推荐阅读