c# - 查找失败的验证器 asp.net

标签 c# asp.net validation logging

我有一个页面,我想在其中记录用户未能满足相关字段要求的每条验证消息。

问题是我的回发/按钮点击从未发生(可能是因为客户端验证),因此在用户实际正确输入每个字段(无验证错误)之前,日志记录从未发生。

按钮点击事件方法:

protected void btnNext_Click(object sender, EventArgs e)
{
    Page.Validate();
    if(Page.IsValid)
    {
        //code
    }
    else
    {
        foreach (IValidator validator in Validators)
        {
            if (!validator.IsValid)
            {
                PageValidatorErrors error = new PageValidatorErrors
                              {
                                  WebsiteID = AppState.WebsiteID,
                                  Page = Request.Url.AbsolutePath,
                                  URL = Request.Url.ToString(),
                                  UserIP = Tools.GetIP(),
                                  ErrorMessage = validator.ErrorMessage,
                                  CreatedDate = DateTime.Now
                               };
                pageValidatorErrorsRep.insert(error);
            }
        }
    }
}

任何想法,我如何记录这些消息?

编辑:

<script type="text/javascript">
    function validatePage()
    {
        if (window.Page_IsValid != true)
        {
            //Page_Validators is an array of validation controls in the page. 
            if (window.Page_Validators != undefined && window.Page_Validators != null)
            {
                //Looping through the whole validation collection. 
                for (var i = 0; i < window.Page_Validators.length; i++)
                {
                    window.ValidatorEnable(window.Page_Validators[i]);

                    //if condition to check whether the validation was successfull or not. 
                    if (!window.Page_Validators[i].isvalid)
                    {
                        var errMsg = window.Page_Validators[i].getAttribute('ErrorMessage');
                        alert(errMsg);
                    }
                }
            }
        }
    }
</script>

最佳答案

这是解决方案的一部分,您可以通过在客户端调用它来获取 validates/true false:

http://razeeb.wordpress.com/2009/01/11/calling-aspnet-validators-from-javascript/

function performCheck()
{

if(Page_ClientValidate())
{

//Do something to log true/ false
}

}

关于c# - 查找失败的验证器 asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382823/

相关文章:

c# - ASP.Net Web Api响应未经授权的访问

javascript - 如何使用 JavaScript 在 asp.net 中基于另一个文本框的文本框上进行验证?

typescript - TSeD 混合类型枚举和集合

c# - 从文件中高效读取结构化二进制数据

c# - 什么更好以及为什么使用 List 作为线程安全 : BlockingCollection or ReaderWriterLockSlim or lock?

javascript - onclick 事件未在 firefox 4.1 中的 anchor 标记中触发

jquery - 类的事件委托(delegate)问题

ruby-on-rails - 更新操作期间如何在Rails中显示验证错误?

c# - 我的服务卸载失败

c# - Lambda 表达式异常