【问题标题】:How to remove extra spaces in input model in dot net core?如何删除点网核心输入模型中的多余空格?
【发布时间】:2019-01-05 06:01:48
【问题描述】:

我找到了一个删除模型属性中多余空格的链接,它是字符串类型How to trim spaces of model in ASP.NET MVC Web API

如何在dot net core 2.1 web api中实现同样的功能?

或者在 dotnet core 中是否有任何内置格式化程序可用于删除输入和输出模型中的额外空格?

提前谢谢?

【问题讨论】:

    标签: c# asp.net-core asp.net-core-2.0 asp.net-core-webapi


    【解决方案1】:

    我相信您链接的答案可能是您的最佳选择。 因此,根据 anwser 创建一个转换器。

    class TrimmingConverter : JsonConverter
    {
      public override bool CanConvert(Type objectType)
      {
        return objectType == typeof(string);
      }
    
      public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
      {
        if (reader.TokenType == JsonToken.String)
          if (reader.Value != null)
            return (reader.Value as string).Trim();
    
        return reader.Value;
      }
    
      public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
      {
        var text = (string)value;
        if (text == null)
          writer.WriteNull();
        else
          writer.WriteValue(text.Trim());
      }
    }
    

    然后在 Startup 类的 ConfigureServices 方法中注册它,如下所示:

    public void ConfigureServices(IServiceCollection services)
    {
      services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
        .AddJsonOptions(a => a.SerializerSettings.Converters.Add(new TrimmingConverter()));
    }
    

    【讨论】:

    • 但它是一种解决方案,无法管理哪些字段无需修剪即可保留
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2022-01-12
    • 1970-01-01
    • 2012-10-17
    • 2020-04-19
    • 2021-05-17
    相关资源
    最近更新 更多