私は検証のためにmvc 2と注釈付き.net 4を使用しています。自分のデータベースに電子メールがすでに存在するかどうかを確認するために、独自のvalidationAttributeを構築しました。 ismailexisting()のc#関数は正しい値を返しますが、javascriptは正しく動作しません。 jqueryのパート/ javascriptのは、次のようになります。.net mvc jquery clientside検証問題
Sys.Mvc.ValidatorRegistry.validators["isexisting"] = function (rule) {
return function (value, context) {
$.ajax({
url: "/persons/ismailexisting",
type: "POST",
data: { email: value },
success: function (data) {
//alert("success: " + data);
if (data == "yes") {
return false;
}
}
})
return true;
return rule.ErrorMessage;
};
};
メールが既に存在する場合、関数ismailexisting()の戻り「はい」、そうでない場合は「いいえ」。 電子メールが存在する場合(データが「はい」なので)、javascriptは他の電子メールを入力する必要があるため、ユーザーが続行できないようにする必要があります。 alert()のコメントを外すと、データの値が正しいです。しかし、somethingsは私の見解に正しい結果を提供することからjavascriptを遠ざけています。
その他のカスタムバリデーションを既に実装しているため、カスタムバリデーション用のその他のものはすべて正しく実装されています。
ありがとうございます!
MVC3にアップグレードする可能性はありますか? MVCの 'RemoteAttribute'はあなたが達成しようとしているものとまったく同じです。 – tvanfosson