将空查询字符串参数视为空字符串,而不使用参数类

crazyhor77

我正在尝试将多个参数传递给httpget Web api函数。我遇到的关键问题是将空查询字符串参数转换为null。

我可以通过创建如下所示的类来解决此问题:

public class CuttingParams
{
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string batch_number { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string filter { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string initiation_month { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string initiation_year { get; set; }
}

但是,我绝对不愿意让必须一次性创建类的想法讨厌。

我已经做了很多研究,并且确实在努力寻找一种改变默认行为的方法,而不仅仅是上述行为。我真的只想这样做:

    [HttpGet]
    public object Search(string batch_number, string filter, string initiation_month, string initiation_year)
    {
    }

我是否缺少更改此默认行为的简便方法,或者应该考虑使用什么样的方法来实现自己的查询字符串解析器,从而可以全局应用?

谢谢

更新

我的帖子似乎有些混乱,如果不清楚,抱歉。我会尽力澄清。

我想将简单的原始类型传递给我的HttpGet方法,如第二个代码片段所示。我的问题是空字符串参数将转换为null。

ie. this url: http://localhost/api/cutting/search?batch_number=&filter=&intiation_month=Jan&initiation_year=2016

将在api中产生以下值:

batch_number = null
filter = null
initiation_month = Jan
initiation_year = 2016

如果我将搜索功能更改为在第一个代码段中使用该类,则它将按我的意愿工作,但我实际上是在长期内避免使用api参数类。

crazyhor77

好的,我已经按照自己的方式工作了。我不得不修改我为mvc网络api找到的一些类似代码,但使其变得更加简单。如下创建您的自定义模型联编程序并将其添加到globalconfiguration。希望这对其他人有帮助。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        GlobalConfiguration.Configuration.BindParameter(typeof(string), new EmptyStringModelBinder());

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}"
        );
    }
}

public class EmptyStringModelBinder : System.Web.Http.ModelBinding.IModelBinder
{
    public bool BindModel(HttpActionContext actionContext, System.Web.Http.ModelBinding.ModelBindingContext bindingContext)
    {
        string val = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue;
        bindingContext.Model = val;

        return true;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

跳过参数/参数而不使用空字符串

来自分类Dev

跳过参数/参数而不使用空字符串

来自分类Dev

flask url_for()将参数视为查询字符串

来自分类Dev

flask url_for()将参数视为查询字符串

来自分类Dev

在存储过程中,空字符串是否被视为空参数?

来自分类Dev

使用Shapeless从案例类派生查询字符串参数

来自分类Dev

参数被视为字符串Javascript

来自分类Dev

传递空字符串作为参数

来自分类Dev

如何使jq将参数视为数字而不是字符串?

来自分类Dev

使用字符串addingPercentEncoding将字符串编码为查询参数

来自分类Dev

强制将路由占位符始终视为查询字符串参数

来自分类Dev

将字符串解析为参数时,多余的空字符串

来自分类Dev

使用 Django 将查询字符串参数添加到基于类的详细视图

来自分类Dev

将JoinColumn中的空字符串视为null

来自分类Dev

为什么将空字符串文字视为true?

来自分类Dev

javascript处理将双引号视为空字符串

来自分类Dev

强制perl XMLin将空标记视为空字符串?

来自分类Dev

强制perl XMLin将空标记视为空字符串?

来自分类Dev

访问查询不一致地将空字符串视为null

来自分类Dev

访问查询不一致地将空字符串视为null

来自分类Dev

Web Api:在查询字符串中传递空参数

来自分类Dev

PostgreSQL错误:EXECUTE的查询字符串参数为空

来自分类Dev

从查询字符串JS中删除空参数

来自分类Dev

PostgreSQL错误:EXECUTE的查询字符串参数为空

来自分类Dev

通过查询字符串参数选择空记录?

来自分类Dev

Express - 如何在不使用查询字符串参数的情况下将数据传递给模型

来自分类Dev

Rails 4.2使用form_tag创建搜索,但不使用查询字符串参数

来自分类Dev

如何在不使用_layout查询字符串参数的情况下重新加载页面

来自分类Dev

如何使用查询参数生成查询字符串哈希

Related 相关文章

  1. 1

    跳过参数/参数而不使用空字符串

  2. 2

    跳过参数/参数而不使用空字符串

  3. 3

    flask url_for()将参数视为查询字符串

  4. 4

    flask url_for()将参数视为查询字符串

  5. 5

    在存储过程中,空字符串是否被视为空参数?

  6. 6

    使用Shapeless从案例类派生查询字符串参数

  7. 7

    参数被视为字符串Javascript

  8. 8

    传递空字符串作为参数

  9. 9

    如何使jq将参数视为数字而不是字符串?

  10. 10

    使用字符串addingPercentEncoding将字符串编码为查询参数

  11. 11

    强制将路由占位符始终视为查询字符串参数

  12. 12

    将字符串解析为参数时,多余的空字符串

  13. 13

    使用 Django 将查询字符串参数添加到基于类的详细视图

  14. 14

    将JoinColumn中的空字符串视为null

  15. 15

    为什么将空字符串文字视为true?

  16. 16

    javascript处理将双引号视为空字符串

  17. 17

    强制perl XMLin将空标记视为空字符串?

  18. 18

    强制perl XMLin将空标记视为空字符串?

  19. 19

    访问查询不一致地将空字符串视为null

  20. 20

    访问查询不一致地将空字符串视为null

  21. 21

    Web Api:在查询字符串中传递空参数

  22. 22

    PostgreSQL错误:EXECUTE的查询字符串参数为空

  23. 23

    从查询字符串JS中删除空参数

  24. 24

    PostgreSQL错误:EXECUTE的查询字符串参数为空

  25. 25

    通过查询字符串参数选择空记录?

  26. 26

    Express - 如何在不使用查询字符串参数的情况下将数据传递给模型

  27. 27

    Rails 4.2使用form_tag创建搜索,但不使用查询字符串参数

  28. 28

    如何在不使用_layout查询字符串参数的情况下重新加载页面

  29. 29

    如何使用查询参数生成查询字符串哈希

热门标签

归档