我有个项目 用remote验证用户名是否被注册 如果被注册返回错误提示这个没问题 但是我返回可以注册的提示以后 在提交表单的时候无法提交 认为我表单没有通过验证 有什么好的方法吗 谢谢

解决方案 »

  1.   


    /// <summary>
            /// 用户
            /// </summary>
            [Required(ErrorMessage = "请输入 {0}")]
            [Display(Name = "用户名")]
            [StringLength(16, ErrorMessage = "{0} 必须至少包含 {2} 个字符 至多包含 {1} 个字符", MinimumLength = 2)]
            [Remote("CheckUserName", "User")]
            public string UserName { get; set; }现在把远程验证取消掉了 用的ajax做验证 不知道有没有更好的办法  $("#UserName").change(function () {
                    $('#UserNameMsg').empty();
                    if ($("#UserName").val().length >= 2) {
                        $.ajax({
                            url: "/User/CheckUserName",
                            type: "Get",
                            contentType: "application/json; charset=utf-8",
                            data: "{username:" + $("#UserName").val() + "}",
                            dataType: "json",
                            success: function (data) {
                                $('#UserNameMsg').empty();
                                if (data == false)
                                    $('#UserNameMsg').html('<span class=msg-y></span>');
                                else
                                    $('#UserNameMsg').html('<span class=msg-n></span>账户已经被注册');
                            },
                            error: function ErrorCallback(XMLHttpRequest, textStatus, errorThrown) {
                                //alert(errorThrown + ":" + textStatus);
                            }
                        });
                    }
                });
      

  2.   

    CheckUserName这方法,如果已被注册是返回false而不是true,你应该写反了
      

  3.   

    按照http://msdn.microsoft.com/zh-cn/library/gg508808(v=vs.98).aspx的方法,用fiddler看看提交验证的过程是否正确。
      

  4.   

    现在用这个没问题的,我原来直接用remote进行远程验证,有这个用户就提示已经有用户,如果没有也提示可以注册,但是提交表单验证的时候不能通过,认为没通过验证,才改的ajax验证,我现在想问的是怎么可以返回可以注册的提示还能通过验证