[解決済み] データ入力後に文字列をトリミングする最適な方法。モデルバインダーをカスタムで作成した方が良いですか?
2022-04-15 11:19:18
質問
ASP.NET MVCを使用していますが、ユーザーが入力した文字列フィールドは、データベースに挿入される前にすべてトリミングされるようにしたいです。 多くのデータ入力フォームがあるため、ユーザーが入力した文字列の値をすべて明示的にトリミングするのではなく、すべての文字列をトリミングするエレガントな方法を探しています。 人々がどのように、そしていつ文字列をトリミングしているのかに興味があります。
私は、カスタムモデルバインダーを作成し、そこで文字列値をトリミングすることを考えました...そうすれば、私のトリミングロジックはすべて1つの場所に含まれます。 これは良い方法でしょうか? これを行うコードサンプルはありますか?
どのように解決するのですか?
public class TrimModelBinder : DefaultModelBinder
{
protected override void SetProperty(ControllerContext controllerContext,
ModelBindingContext bindingContext,
System.ComponentModel.PropertyDescriptor propertyDescriptor, object value)
{
if (propertyDescriptor.PropertyType == typeof(string))
{
var stringValue = (string)value;
if (!string.IsNullOrWhiteSpace(stringValue))
{
value = stringValue.Trim();
}
else
{
value = null;
}
}
base.SetProperty(controllerContext, bindingContext,
propertyDescriptor, value);
}
}
こんなコードはいかがでしょうか?
ModelBinders.Binders.DefaultBinder = new TrimModelBinder();
global.asax Application_Start イベントを設定します。
関連
-
ASP.NET Core Web API チュートリアル プロジェクト構成図
-
ネットパフォーマンスチューニング - ArrayPool 詳細
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] IIS7 の「クラシック」パイプラインモードと「統合」パイプラインモードの違いは何ですか?
-
[解決済み] IISのAppPoolIdentityとファイルシステムの書き込みアクセス権
-
[解決済み】ASP.NET IdentityのIUserSecurityStampStore<TUser>インターフェースとは何ですか?
-
[解決済み] ASP.NET MVCのAjaxポストでantiforgerytokenを含める。
-
[解決済み] ASP.NETの一時ファイルのクリーンアップ
-
[解決済み] ASP.NET Web API - PUT & DELETE 動詞が許可されない - IIS 8
-
[解決済み] .Netが間違った参照アセンブリのバージョンを選択する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
ASP.NET Coreミドルウェアによるグローバル例外処理機構の利用について
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
ajaxでポップアップアラートボックス
-
ASP.NETのオンライン統計とアプリケーションとセッションを使用した訪問履歴
-
[解決済み] IIS7 の「クラシック」パイプラインモードと「統合」パイプラインモードの違いは何ですか?
-
[解決済み] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). この違いは何ですか?
-
[解決済み] ASP.NETの新しいセキュリティ脆弱性の深刻度と回避方法について教えてください。
-
[解決済み] ポストバック時に「オブジェクトの現在の状態により操作が有効でない」エラーが発生する
-
[解決済み] IIS7.5とASP.NET v2によるWebアプリケーションの問題(web.configエラー)HTTP 500.19