在 MVC 4 中我有这个自定义路线:
url+ "test/{id1}/{id2}/{id3}/{id4}/{id5}/{id6}/{id7}/{id8}/{id9}/{id10}/{id11}/{id12}",
new
{
controller = nameof(Test),
action = "Index",
id1 = UrlParameter.Optional,
id2 = UrlParameter.Optional,
id3 = UrlParameter.Optional,
id4 = UrlParameter.Optional,
id5 = UrlParameter.Optional,
id6 = UrlParameter.Optional,
id7 = UrlParameter.Optional,
id8 = UrlParameter.Optional,
id9 = UrlParameter.Optional,
id10 = UrlParameter.Optional,
id11 = UrlParameter.Optional,
id12 = UrlParameter.Optional
}
这是 TestController 中的一个方法。 但是,我似乎无法在 Core 中使用它。
如果我有
"Test Controller", "/test/{action}/{id1?}/{id2?}/{id3?}/{id4?}/{id5?}/{id6?}/", new { Controller = "Test", Action = "Index" }
在控制器中:
[HttpGet]
public IActionResult Index(string id1, string id2, string id3, string id4, string id5, string id6)
{
return Ok("hello world");
}
只有当我指定 ids 作为查询参数时它才有效。我需要网址中的斜杠。
路由属性有效,但 URL 是动态的,我认为这不能很好地协同工作。
我需要如何在此处构建路线才能使其正常工作?
最好使用属性路由
[HttpGet("~/test/index/{id1?}/{id2?}/{id3?}/{id4?}/{id5?}/{id6?}")]
public IActionResult Index(string id1, string id2, string id3, string id4, string id5, string id6)
{
return Ok("hello world");
}