如何解决同一控制器中具有不同参数的多个端点
距离我必须这样做已经有好几年了,热量一定会传到我身上!
我有家庭控制器:
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";
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。