同一控制器中具有不同参数的多个端点

问题描述

距离我必须这样做已经有好几年了,热量一定会传到我身上!

我有家庭控制器:

    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}");
        });

我得到的错误是:

** {“错误”:“ APP:请求匹配了多个端点。

解决方法

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?}");
});
,

我尝试过

using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Routing;

namespace RouteTemplateProvider.Controllers
{
    public class RouteWithParamAttribute : Attribute,IRouteTemplateProvider
    {
        public string Template => "{param1}/{param2}/{param3}";
        public int? Order { get; set; }
        public string Name { get; set; }
    }
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        [RouteWithParam]
        public string Index(string param1,string param3)
        {
            return "Index with param";
        }

        public string Index()
        {
            return "Index no param";
        }
    }
}



相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...