修复MVC3中使用Remote验证的一点小问题

MVC3中使用Remote验证,把jquery1.4.4换成1.5.2后验证不起作用,而且无法提交表单。

排查后是因为ajax请求后返回数据类型的问题

修改jquery.validate.js,从939行开始,加注释的两行为修改的地方

 

$.ajax($.extend(true, {
                        url: param,
                        mode: "abort",
                        port: "validate" + element.name,
                        //dataType: "json",//这里注释掉
                        data: data,
                        success: function (response) {
                            alert(response);
                            validator.settings.messages[element.name].remote = previous.originalMessage;
                            var valid = response === "true";//这里把true加上引号
                            if (valid) {

 

类中属性定义

 

        [Required]
        [Display(Name="游戏ID")]
        [Remote("CheckGameId","Mdata",ErrorMessage="游戏ID已存在")]
        public int GameId { get; set; }

 

进行验证的方法直接返回string类型即可

 

        public string CheckGameId(int gameId)
        {
            appData ad = new appData();
            if (!ad.CheckGameId(gameId))
                return "true";

            string errorMsg = gameId + "已存在";
            return errorMsg;
        }

posted @ 2011-04-24 23:43 天天无用 阅读(...) 评论(...) 编辑 收藏