您的位置:首页 > 编程语言 > ASP

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

2009-12-17 13:16 369 查看
验证控件测试用户输入,设置错误状态,并生成错误信息。它们不会更改页的处理流程,例如,在检测到用户输入错误时不会略过代码。取而代之的是,您将在执行应用程序的特定逻辑之前在代码中测试控件的状态。如果检测到错误,您自己的代码将无法运行;页将继续处理并返回给用户,并向其显示错误信息。
安全说明: 默认情况下,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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐