ユーザー入力が有効かどうかを確認するMVC Ajaxコールバックがあります。このコールバックは、関連するモデルプロパティの[Remote]属性を介して呼び出されます。Ajaxリモート検証で警告を返します(エラーではありません)
私はデザインを変更しましたが、値が正しくない場合は本当にユーザーに警告したいと思っていましたが、誤った値でモデルの検証ができないようにしたいと思います。
クイック検索では、MVCに焼いた「目立たない検証」マジック(例:this SO post)に似た「邪魔されない警告」を配線するという一般的な問題に対する非常に複雑な解決策を説明するいくつかのスレッドが表示されます。私は一般的な解決策を探しているわけではありません。これに多くの時間と労力を費やしたくはありませんが、Ajaxの専門家がAjaxサーバールーチンから返すことのできるものがあるかどうかは分かりません。妥当性検証のクライアント側コードが妥当性検査エラーを引き起こさずにメッセージを出す効果。
はFYI、私の既存のサーバー側のコードは次のようになります。
public async Task<ActionResult> CouponCodeExists(string couponCode, int? planId)
{
if (some_logic) {
return Json("Coupon code is already taken", JsonRequestBehavior.AllowGet);
} else {
return Json(true, JsonRequestBehavior.AllowGet);
}
}
はちょうどあなたが入力 '.change()'イベントにAJAX呼び出しを所有して行い、成功コールバックで、メッセージを表示します(検証エラーを引き起こさないようにするには、 'RemoteAttribute'を削除してください)。 –
@StephenMueckeより良い回答がない場合は、あなたのコメントを優先回答として受け入れたいと思います。あなたが「回答」としてそれを投稿することがとても親切であれば、私はそれを受け入れ、この質問で終わります。 –