Как указано здесь , наличие двойной косой черты в URL допустимо.
У меня есть проект ASP Net Core, в котором используется атрибутная маршрутизация, контроллер с именем GroupController
для обработки операций на Group
с и действие для PUT
ting RulePart
с группы, указанной в ImportId
типа 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
}
}
URL-адрес, подобный http://localhost/api/group/groupImportId/ruleParts
, соответствует ожидаемому.
Я бы ожидал, что нулевые groupImportId
s, то есть URL-адреса, такие как http://localhost/api/group//ruleParts
, будут вызывать это же действие, поскольку параметр маршрута groupImportId
был помечен как необязательный. Однако при попытке вызвать этот URL-адрес появляется ошибка 404, и действие не выполняется.
Есть ли возможность сопоставить пустой сегмент пути URL в ASP Net Core?