正如这里所指出的,URL中使用双斜杠是有效的。
我有一个ASP Net Core项目,它使用属性路由,控制器名为GroupController
,用于处理对Group
执行操作,并且有一个用于PUT
RulePart
的动作,它是通过其类型为string
的ImportId
指定组的。
[Route("/api/[controller]")]
public class GroupController : ControllerBase
{
[HttpPut("{groupImportId?}/ruleParts")]
public async Task<IActionResult> PutRuleParts(string groupImportId, [FromBody]List<RulePartDto> ruleParts)
{
return null; //actual code ommitted for brevity
}
}
像 http://localhost/api/group/groupImportId/ruleParts
这样的 URL 能够得到预期的匹配。
我希望空的 groupImportId
,即像 http://localhost/api/group//ruleParts
这样的 URL 也能调用同一个操作,因为 groupImportId
路由参数已被标记为可选。然而,在尝试调用这个 URL 时,我收到了 404 错误,并且该操作没有被执行。
在 ASP Net Core 中是否有可能匹配空的 URL 路径段?
http://localhost/api/group/ruleParts
也是有效的。 - Nkosi