0

Iv'eは、htmlページのいくつかのドロップダウンからのいくつかの単純な入力を処理するための汎用ハンドラー(.ashx)を作成しました。データが有効であることを確認する必要があることを知っているので、次のコードを作成しました

string ProjectNumber = context.Request.Form["JobNumber"];
string ProjectShare = context.Request.Form["ProjectShare"];

if (ProjectNumber == null || ProjectNumber == string.Empty) {
     throw new Exception("Project number cannot be empty or null");
}

if (ProjectShare == null || ProjectShare == string.Empty) {
      throw new Exception("Project Share cannot be empty or null");
}

この入力を処理するためのより良い方法はありますか

4

2 に答える 2

2

メソッドを使用してSystem.String.IsNullOrEmpty()、データをハンドラーに渡す前に実行されるクライアント側/js 検証があることを確認できます。

于 2012-05-02T16:17:50.080 に答える
0

入力値に対してより多くの検証ルールを適用する必要があります(「空/ヌル」文字列チェックだけでなく)。値の用途によって異なります。いくつかの基本的な検証は、データ型、データ範囲、フォーマットなどのチェックのようなものです。他の場所で検証コードを再利用できるように、ユーザー入力を検証するための個別の検証クラスを定義できます。例えば:

public class DataValidator
{
    public ValidationResult ValidateProjectNumber(string projectNumber)
    {
        //ProjectNumber validation rules...
        if (string.IsNullOrWhiteSpace(projectNumber))
            return new ValidationResult("Project number is requried.");

        int projectId;//say your project number is int.
        if (int.TryParse(projectNumber, out projectId))
            return new ValidationResult(string.Format("Project Number '{0}' is not a valid number."));

        // more checks....

        return ValidationResult.Success;
    }

    public ValidationResult ValidateProjectShare(string projectShare)
    {
        //projectShare validation rules...

        return ValidationResult.Success;
    }
}

また、無効な入力に対して例外をスローしないことをお勧めします。代わりに、検証結果をJSON / xmlとしてクライアント側に送信し、ユーザーフレンドリーな方法でエラーメッセージを表示します。

于 2012-05-02T17:17:34.803 に答える