0

私は Web 開発は初めてですが (WinForms 開発は初めてではありません)、クライアント側とサーバー側の両方でエラーを処理するための正しく効率的な方法を知りたいと思っていました。

たとえば、ユーザーが間違った郵便番号を (文字を使用して) 入力した場合、ユーザーに間違った郵便番号が入力されたことを通知したいのですが、これをどのように処理すればよいですか?

これはクライアント側にあると思いますが、サンプルコードを見せてもらえますか? どのスクリプト言語を使用する必要がありますか? 画面にメッセージを表示する必要がありますか? エラーメッセージを表示する必要がありますか? これを行う標準的な方法は何ですか?

例 2: ユーザーは、サーバー データベースでクエリを実行する何かをクリックします。エラーが発生します。ユーザーにエラーを通知するにはどうすればよいですか?

通常、Winフォームではこれを行うことができます:

try
{
     CreateDirectoriesAndSystemFiles();
}
catch (Exception ex)
{
     ErrorLogger.LogError(ex.Source, ex.TargetSite.ToString(), "Error creating directories!; " + ex.Message);
     MessageBox.Show(ex.Message, "Error creating directories!", MessageBoxButtons.OK, MessageBoxIcon.Error);
     return;
}

Web環境で上記を模倣するにはどうすればよいですか?

4

6 に答える 6

1

ほとんどの人は、非常に強力で柔軟性がありながら、非常に使いやすいjQuery検証を使用しています。ドキュメントはこちらhttp://docs.jquery.com/Plugins/Validationです。MicrosoftはそれらをデフォルトでMVC3および4に含め、モデル検証クライアント側に使用するため、MSスタックとMVCを使用している場合は、それを使用するもう1つの理由があります。http://msdn.microsoft.com/en-us/library/a0z2h4sw(v _ = vs.100).aspx-これらは、カスタム検証機能を処理するために自分で作成するサーバー側とクライアント側のメソッドを指定できるカスタムバリデータータイプを介して拡張できます。お役に立てれば!

于 2012-09-13T19:36:29.897 に答える
1

1 クライアント通知には、バリデーターを使用できます

リンク: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator.aspx

このリンクはRequiredFieldValidator

あなたも持っていCompareValidator, CustomValidatorます....

リンク: http://msdn.microsoft.com/en-us/library/ms972961.aspx

それは良い解決策です。

Global.asax2 例外処理には、およびを使用できますApplicatio_Error

リンク: http://msdn.microsoft.com/en-us/library/24395wz3%28v=vs.100%29.aspx

于 2012-09-13T19:31:51.830 に答える
0

あなたはたくさんの質問をしているので、私はいくつか答えようとします:

  1. 検証(郵便番号の例)について-まず、これを十分に強調することはできません-常にサーバー側で検証します。javascriptなどのクライアント側のコードは簡単にオフ/回避できます。クライアント側でチェックする場合でも(そしてそうする必要があります)、常にサーバー側でもチェックしてください。
    とはいえ、使用する検証フレームワークは、使用している表示フレームワークによって異なります。私は過去にjqueryの検証を使用しましたが、満足しています。

  2. どのスクリプト言語を使用する必要がありますか?そうですね、正解が1つあれば、それほど多くても意味がありませんね:)
    とにかく、jQueryは非常に人気がありますが、 knockoutJSも人気があり、 Angularの人気が高まっていると聞いています。どれが好きか見てください

  3. サーバー側での予期しないエラーについては、いくつかの良い提案がありました。AghilasYakoubが好きです。

幸運を祈ります

于 2012-09-13T19:37:46.910 に答える
0

ウェブフォームを使用しているか、MVC を使用しているかによって異なります。

MVC では、通常、サーバー側のエラー処理のために、エラー処理、ログ記録、およびリダイレクト ロジックを継承して配置する ApplicationController クラスを作成し、コントローラーにこのクラスを継承させます。

Web フォームの場合、エラー コントロールを作成し、これをマスター ページに含めて、サーバー側のエラーをこれに送り返します。

いずれの場合も、クライアント側では、フィールドの検証に jquery と javascript を使用できます。

于 2012-09-13T19:35:07.687 に答える
0

asp.net は、サーバー側のエラーに対して同じ try/catch 処理を行うことができます。

入力検証に関する限り、Asp.net 入力検証コントロールを調べる必要があります。

于 2012-09-13T19:33:22.613 に答える
0

例 2 では、エラー ページにリダイレクトできます。

try
{
     CreateDirectoriesAndSystemFiles();
}
catch (Exception ex)
{
     Response.Redirect("Error.aspx?err=" + ex.GetType());
}

Error.aspx ページでは、err パラメータを解析してユーザーに表示します。

これを db に記録することをお勧めします (使用する場合)。

于 2012-09-13T19:33:46.950 に答える