做网站 学php哪一部分,个人网站设计论文ppt,易居系统登录,在百度网上做广告需要多少钱前言有网友在交流群中询问#xff0c;如何获取查询字符串参数#xff1a;默认情况下#xff0c;ASP.NET Core 的模型绑定以键值对的形式从 HTTP 请求中的以下列表中指示的顺序扫描源并获取数据#xff1a;表单域请求正文路由数据查询字符串参数上传的文件因此#xff0c;不… 前言有网友在交流群中询问如何获取查询字符串参数默认情况下ASP.NET Core 的模型绑定以键值对的形式从 HTTP 请求中的以下列表中指示的顺序扫描源并获取数据表单域请求正文路由数据查询字符串参数上传的文件因此不需要任何配置即可在 Action 中获取到查询字符串参数[HttpGet]
public string Demo(int id, int price)
{return $id {id}, price {price};
}但是使用查询字符串参数存在一个隐患不传任何参数时Demo方法也可以运行因为模型绑定会为缺失的参数赋类型默认值由于 0 也是正确的int值我们无法区分这到底是不是传递过来的参数值。而price 0可能会造成很严重的业务问题。那要如何处理呢解决方案可空类型对于可空类型默认值为null。因此只需检查它们是否为null就可判断是否传递了查询字符串参数[HttpGet]
public string Demo(int id, int? price)
{if(pricenull)throw new ArgumentNullException(nameof(price));return $id {id}, price {price};
}[BindRequired] 属性上述方案虽然可以实现要求但是代码改动较多。另一种更简单的方案是使用绑定验证属性[HttpGet]
public string Demo(int id, [BindRequired] int price)
{return $id {id}, price {price};
}与原始方法相比执行增加一个属性即可。而且 Swagger 也可以正确识别这一属性公众号回复【加群】加入”MyIO 技术交流群“