为了账号安全,请及时绑定邮箱和手机立即绑定

查询字符串到可选参数

查询字符串到可选参数

C#
明月笑刀无情 2021-11-07 19:17:18
我有一个带有许多可选值的查询字符串,例如。/filter?location=scotland&minprice=100&maxprice=500我有一个带有许多可选参数的过滤器方法public List<result> Filter(    bool isVisible = false,    string location = null,    int? minPrice = null,    int? maxPrice = null,)我想使用查询字符串值作为过滤器方法的参数,但我想不出一个好的方法来做到这一点。我能想出的最好方法是使用 ?: 每个参数的条件var results = Filter(   (Request.QueryString["isvisible"] != null ? Request.QueryString["isvisible"] == "true" : false)等等...但是使用此方法,如果尚未设置特定的查询字符串值,则必须传入默认值,但我不想传入默认值,我希望从过滤器方法中设置默认值。有没有办法做到这一点?或者有没有更好的方法来实现同样的目标?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

听起来你只需要映射默认值。


这里实际上有两个“接口”:调用者到Filter()方法的接口和Filter()方法到数据源的接口。它们不必具有相同的默认值。


public List<Whatever> Filter(string criteria1 = null, string criteria2 = null)

{

    criteria1 = criteria1 ?? SYSTEM_DEFAULT_FOR_CRITERIA1;

    criteria2 = criteria2 ?? SYSTEM_DEFAULT_FOR_CRITERIA2;


    return _dataSource.GetData(criteria1, criteria2);

}


查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信