1. ホーム
  2. asp.net-mvc-3

[解決済み] MVC3 ModelStateエラーの除去

2023-04-13 11:53:47

質問

ユーザーが選択した画像をローカルファイルシステムからアップロードするという状況があります。 私のフォームには、基本的に2つの送信ボタンがあります。 1つは通常フォームを送信するために使用され、すべてのバリデーションが実行されます。 2つ目は画像をアップロードするためのもので、この場合はまだバリデーションを実行したくありません。

画像のアップロード」送信ボタンに "style-name cancel" というクラス値を与えることによって、クライアント側の検証をオフにすることに成功しました。

<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" /> 

さて、私がポストバックするとき、私のモデルにはUploadImageButtonというプロパティがあり、このボタンがクリックされると、このプロパティ(入力の名前がプロパティと一致する)に入力されます。 この方法で、私はフォームが私の真の送信ボタンによって送信されたか、またはUploadImageButtonによって送信されたかを知ることができます。

私の質問はこれです... ServerSide Validation をオフにするにはどうしたらよいでしょうか。 ユーザーがこのボタンをクリックしたときに、検証の概要情報を表示させたくないのです。 私はあなたがこれを使用してカスタムモデルエラーを追加することができます知っている

ModelState.AddModelError("{key}", "{error msg}");

モデルエラーを除去する手段を探しています。 これは可能でしょうか?

EDITです。

思いついたのはこんな感じです。

foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
     //ModelState.Remove(key); //This was my solution before
     ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}

どのように解決するのですか?

以下のような方法で、モデルエラーを除去することができます。

if (ModelState.ContainsKey("{key}"))
    ModelState["{key}"].Errors.Clear();