首页 > 解决方案 > 如何删除点网核心输入模型中的多余空格?

问题描述

我找到了一个链接来删除模型属性中多余的空格,它是字符串类型如何在 ASP.NET MVC Web API 中修剪模型的空格

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

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

提前致谢?

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

解决方案


我相信您链接的答案可能是您最好的选择。因此,根据 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());
  }
}

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

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

推荐阅读