在 ASP.NET Core 中,可以使用 [FromQuery]
特性将参数标记为从查询字符串中获取值。默认情况下,这些参数是可选的,但是如果你想将它们标记为必需的,可以使用 [Required]
特性。
以下是一个示例解决方法,其中 id
参数被标记为必需的:
[HttpGet]
public IActionResult GetValue([FromQuery][Required] int id)
{
// 如果 id 参数不存在,将返回 400 Bad Request
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// 处理逻辑
// ...
return Ok();
}
在上面的示例中,id
参数被标记为 [FromQuery]
,并且它也带有 [Required]
特性。这意味着在执行该操作时,必须提供 id
参数,否则将返回 400 Bad Request 响应。
请注意,在使用 [Required]
特性之前,确保已经添加了 Microsoft.AspNetCore.Mvc.DataAnnotations
NuGet 包,并且在 Startup.cs
文件中启用了数据注解:
using Microsoft.AspNetCore.Mvc.DataAnnotations;
using Microsoft.Extensions.DependencyInjection;
public void ConfigureServices(IServiceCollection services)
{
// 其他配置
services.AddControllers()
.AddMvcOptions(options =>
{
options.ModelMetadataDetailsProviders.Add(new DataAnnotationsMetadataProvider(
new ValidationAttributeAdapterProvider()));
});
}