ASP.NET - 如何:以编程方式测试 ASP.NET 服务器控件的有效性

验证控件测试用户输入,设置错误状态,并生成错误信息。它们不会更改页的处理流程,例如,在检测到用户输入错误时不会略过代码。取而代之的是,您将在执行应用程序的特定逻辑之前在代码中测试控件的状态。如果检测到错误,您自己的代码将无法运行;页将继续处理并返回给用户,并向其显示错误信息。

安全说明: 默认情况下,ASP.NET 网页自动验证是否有恶意用户试图向您的应用程序发送脚本或 HTML 元素。

您可以测试常规的页范围的状态,并且可以测试单独控件的状态。通常,您在为页创建的事件处理程序中完成上述工作。

一、测试常规错误状态

在您的代码中,测试页的 IsValid 属性。此属性将累计页上所有验证控件的 IsValid 属性的值(使用逻辑 AND),如果有任何验证控件设置为无效,页的属性都将返回 false

说明: 验证信息在页的初始化或加载阶段不可用。但是,您可以在 Page_Load 期间手动调用 Validate 方法,然后测试页的 IsValid 属性。

下面的代码示例演示按钮的事件处理程序。该代码测试页的 IsValid 属性。请注意,在此无需其他子句,原因是页将自动返回到浏览器,并且验证控件将显示其自己的错误信息。

void Button1_Click(object sender, System.EventArgs e)

{

if (IsValid)

{

// Perform database updates or other logic here.

}

}

二、测试单独控件的错误状态

依次通过页的 Validators 集合,该集合包含对于所有验证控件的引用。您可以随后检查每个验证控件的 IsValid 属性。

说明: 如果希望在 Page_Load 期间执行该检查,则必须首先手动调用 Validate 方法。

下面的代码示例演示如何获取单个验证控件的状态。

if (this.IsPostBack)

{

this.Validate();

if (!this.IsValid)

{

string msg = "";

// Loop through all validation controls to see which

// generated the errors.

foreach (IValidator aValidator in this.Validators)

{

if (!aValidator.IsValid)

{

msg += "<br />" + aValidator.ErrorMessage;

}

}

Label1.Text = msg;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值