As pointed out here, having a double slash in a URL is valid.
I have an ASP Net Core project that uses attribute routing, a controller named GroupController
for handling operations on Group
s and an action for PUT
ting RulePart
s of a group, specified by its ImportId
of type string
.
[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
}
}
A URL like http://localhost/api/group/groupImportId/ruleParts
matches as expected.
I would expect that null groupImportId
s, i.e. URLs like http://localhost/api/group//ruleParts
would call that same action, since the groupImportId
route parameter has been marked as optional. However, when trying to call this URL, I get a 404 error and the action is not hit.
Is there a possibility to match an empty URL path segment in ASP Net Core?
http://localhost/api/group/ruleParts
will also be valid. – Nkosi