问题描述
距离我必须这样做已经有好几年了,热量一定会传到我身上!
我有家庭控制器:
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";
}
}
}