IMO ASP.NET 验证器非常好,您可以使用Page.IsValid
.
如果您不检查每个控件的服务器值并显示消息框或其他任何内容,那么您可以使用CustomValidator
并使用 ajax 调用一些服务器端方法并将其用于验证。
这是CustomValidator
调用服务器端 ashx 处理程序以检查邮件地址是否有效的 JavaScript 函数示例,这只是一个示例,您可以使用 ASP.NET 提供的其他方法来调用服务器端(服务、页面方法等)
请注意:这不是服务器端验证的替代品,您仍然需要它,因为这很容易避免。
function IsEmailValid(val, args) {
var strUrl = "/SiteHandler.ashx?CheckEmail=" + args.Value;
var strReturn = "";
$.ajax({
url: strUrl,
success: function (html) { strReturn = html; },
async: false
});
args.IsValid = strReturn == "true";
}
将该函数设置为自定义验证器:
customValidator.ClientValidationFunction = "IsEmailValid";
在 ashx 处理程序的服务器端:
public void ProcessRequest(HttpContext context)
{
if (context.Request.Params["CheckEmail"] != null)
{
if (CallSomeCustomLogicAndReturnIsMailOK(context.Request.Params[CheckEmail]))
context.Response.Write("true");
else
context.Response.Write("false");
}
}