ASP.NET MVC2 - 挂钩到客户端验证

时间:2010-10-12 17:06:31

标签: asp.net-mvc-2

当使用ASP.NET MVC2客户端验证更新客户端错误时,我想触发一些自定义代码。我已经跟踪了这个我想要挂钩的函数:

Sys.Mvc.FormContext.prototype = {

    // ...

    _displayError: function Sys_Mvc_FormContext$_displayError() {
        if (this._validationSummaryElement) {
            if (this._validationSummaryULElement) {
                Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement);
                for (var i = 0; i < this._errors.length; i++) {
                    var liElement = document.createElement('li');
                    Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]);
                    this._validationSummaryULElement.appendChild(liElement);
                }
            }
            Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
            Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
        }
    },

    // ...

}    

如何覆盖此功能,以便我的代码可以

  • 调用原始函数
  • 然后做一些其他的工作

1 个答案:

答案 0 :(得分:0)

找到它。

<script type="text/javascript">
    $(function () {
        var old_displayError = Sys.Mvc.FormContext.prototype._displayError;
        Sys.Mvc.FormContext.prototype._displayError = function () {
            old_displayError.apply(this);
            // do other stuff here
        }
    });
</script>

我不习惯重写原型功能,所以我有点难过。