ユーザーがローカル ファイル システムから選択した画像をアップロードしている状況があります。私の見解では、私のフォームには基本的に2つの送信ボタンがあります。1 つは通常どおりフォームを送信するために使用され、すべての検証が実行されます。2 つ目は、画像をアップロードするためだけのものです。この場合、まだ検証したくありません。
「画像のアップロード」送信ボタンに「style-name cancel」のクラス値を与えることで、クライアント側の検証をオフにすることができたので、
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
ここで、ポストバックすると、モデルに UploadImageButton プロパティがあり、このボタンをクリックすると、このプロパティが入力されます (入力の名前がプロパティと一致します)。このようにして、フォームが実際の [送信] ボタンによって送信されたのか、UploadImageButton によって送信されたのかがわかります。
私の質問はこれです... サーバー側の検証をオフにするにはどうすればよいですか? ユーザーがこのボタンをクリックしたときに、検証の概要情報が表示されないようにします。これを使用してカスタムモデルエラーを追加できることを知っています
ModelState.AddModelError("{key}", "{error msg}");
モデル エラーを削除する手段を探しています。これは可能ですか?
編集:
これが私が思いついたものです:
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
}