2

asp.net Web アプリケーションがあり、現在、ユーザー登録ページの更新パネルを使用して、ユーザーが存在するかどうかを確認しています。これを行うにはいくつかの問題があります

1-更新パネルが遅い

2- ユーザーが次のテキストボックスにタブで移動すると、フォーカスが失われるため、ユーザーはボックスを手動でクリックして戻る必要があります。これは、更新パネルがポップアップにある場合にさらに悪化します。

3-ページを更新しませんが、発生したイベントを呼び出すだけでよい場合でも、ページの読み込みメソッドが呼び出されます。

asp.net mvc ではなく、Web フォームを使用しています。

私たちの質問は、この操作を行うための最良の方法は何かということです: ユーザー名が既に存在するかどうかを確認してください。

クライアント側: 通常の JavaScript、JQuery、JSON、その他の可能性は? ユーザーが存在するかどうかを確認するサーバー側: 別の aspx ページ、Web サービス、その他の可能性?

他にどのようなテクニックが可能ですか、または皆さんは使用していますか?

前もって感謝します..

4

1 に答える 1

2

クライアント側からの例を次に示します: http://jsfiddle.net/HackedByChinese/XPd2G/2/

という単純なプラグインを作成しましたdelayedkeyup。これは、ユーザーが数ミリ秒後に入力を停止した後にイベントを発生させます。イベントが発生したら、ajax 呼び出しを行います (この例では、モック化された JSON エンドポイントです。これをWebMethod、単純な DB ルックアップを行う Web サービスまたは でマークされたページ メソッドへの呼び出しに置き換えます)。ajax 呼び出しは、電子メールが有効かどうかを示す JSON メッセージを返します。

結果に視覚的なインジケーターを追加します (緑のアウトラインは良好、赤は不良)。これを、使用する検証スキームに置き換えたり、メッセージを表示したりできます。

注:delayedkeyupを使用した検証が気に入らない場合は、.blurまたは.changeに置き換えるだけでよいため、ユーザーがテキストボックスをクリックまたはタブで移動するか、値を(それぞれ)変更すると検索が行われます。

は次のWebMethodようになります。

[WebMethod]
public string ValidateEmail(string email)
{
   var valid = IsEmailValid(email); // your validation routine
   return string.Format("{{ \"validEmail\":{0} }}", valid.ToString().ToLower());
}
于 2012-06-09T01:15:46.253 に答える