在ASP .NET Core Web API中,如果在路由中使用点号导致404未找到错误,可以通过以下几种方法进行解决:
services.AddControllers(options =>
{
options.SuppressAsyncSuffixInActionNames = false;
options.AllowEmptyInputInBodyModelBinding = true;
}).AddNewtonsoftJson();
这将允许路由中使用点号,并使用NewtonsoftJson作为默认的JSON序列化器。
[HttpGet("{id}", Name = "GetById")]
,并在控制器的方法中返回CreatedAtRoute
:[HttpGet("{id}", Name = "GetById")]
public IActionResult GetById(int id)
{
// 从数据库中获取数据
var data = _repository.GetById(id);
if (data == null)
{
return NotFound();
}
return CreatedAtRoute("GetById", new { id = data.Id }, data);
}
这将在返回的响应头中包含Location头,其中包含URL路径,该路径将匹配带有点号的路由。
[HttpGet("file/{name}.{extension}")]
,并且可以通过/file/myfile%2Etxt
访问。通过使用上述方法之一,你可以在ASP .NET Core Web API中的路由中使用点号,而不会导致404未找到错误。