【发布时间】:2021-02-20 04:35:46
【问题描述】:
我要支持/route/param1、/route/param1/param2、/route/param1/param2/param3等路由。
现在我已经在我的控制器中为每个参数组合定义了一个路由:
[Route("{path1}")]
public async Task<IActionResult> Route1(string path1)
{
return await ParsePath(new[] { path1 });
}
[Route("{path1}/{path2}")]
public async Task<IActionResult> Route2(string path1, string path2)
{
return await ParsePath(new[] { path1, path2 });
}
这有两个主要缺点:
- 目前我有 8 个这样的参数,所以我最多只能支持 8 个参数
- 如果我想支持更多参数,这段代码不是很干
我更喜欢使用带有这种签名的方法:
public async Task<IActionResult> RouteMultiple(params string[] paths)
{
return await ParsePath(queryString, paths);
}
但这与Route 属性兼容吗?
【问题讨论】:
-
嗨@CamiloTerevinto 感谢您的回复。我想使用带有 URL 中参数的 GET 端点,以便用户可以轻松更改它们并用于 SEO 目的
-
中间件途径听起来很有趣,使用一些中间件是否可以清理此代码并支持所描述的路由?
标签: c# asp.net-core .net-core asp.net-core-mvc