修复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; }