【发布时间】:2017-05-10 14:32:04
【问题描述】:
使用 ASP.NET Core 1.1 和 VS2015 (sdk 1.0.0-preview2-003131),我有以下控制器:
public class QueryParameters
{
public int A { get; set; }
public int B { get; set; }
}
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
public IEnumerable<string> Get([FromQuery]QueryParameters parameters)
{
return new [] { parameters.A.ToString(), parameters.B.ToString() };
}
}
如您所见,我有两个查询参数。我想要的是需要其中之一(例如:A)。也就是说,我想用一个属性(如果可能的话)说这个属性是必需的。然后,我希望 ASP.NET 在调用我的控制器之前进行此验证。
我本来希望使用 Newtonsoft RequiredAttribute 来使用我已经用来验证 PUT/POST 内容中所需属性的相同属性,但由于 url 不是 JSON 字符串,显然没有使用.
有什么建议让 ASP.NET Core 自动检查所需的查询参数吗?
请注意,我知道我可以使用可为空的查询参数自己编写检查代码,但这超出了让 ASP.NET 在调用我的控制器之前进行验证的目的,从而保持我的控制器整洁。
【问题讨论】:
标签: c# asp.net-core .net-core asp.net-core-mvc