0

我创建了一个通用处理程序 (.ashx) 来处理来自 html 页面中某些下拉列表的一些简单输入。我知道我应该检查数据以确保它有效,所以我创建了以下代码

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 回答