Asp.net-Mvc
如何在 ASP.NET MVC Web API 中修剪模型的空間
修剪傳遞給 MVC Web api 的模型的所有屬性的最佳方法是什麼(具有復雜對象的 post 方法)。可以簡單做的一件事是在所有屬性的 getter 中呼叫 Trim 函式。但是,我真的不喜歡那樣。
我想要一種簡單的方法,類似於此處為 MVC 提到的ASP.NET MVC:在數據輸入後修剪字元串的最佳方法。我應該創建自定義模型綁定器嗎?
要在 Web API 中修剪所有傳入的字元串值,您可以定義一個
Newtonsoft.Json.JsonConverter: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()); } }然後在 上註冊
Application_Start。在 中執行此操作的約定FormatterConfig,但您也可以在Application_Startof 中執行此操作Global.asax.cs。這是在FormatterConfig:public static class FormatterConfig { public static void Register(HttpConfiguration config) { config.Formatters.JsonFormatter.SerializerSettings.Converters .Add(new TrimmingConverter()); } }