Нестандартный элемент верификации ASP.NET + WebMethod + jQuery

Я пытаюсь реализовать Нестандартный элемент верификации.NET, который использует $ .ajax, чтобы запросить WebMethod на той же странице и возвратить булево значение, чтобы указать, является ли результатом TRUE или FALSE.

WebMethod, который я использую, действительно прост

[WebMethod()]
public static bool IsPromoValid(string code)
{
    string promoCode = "ABCDEFG";
    bool result = code.ToLower() == promoCode.ToLower();
    return result;
}

CustomValidator похож на это

<asp:CustomValidator ID="cvPromoCode" Display="None" ControlToValidate="txtPromoCode" runat="server" ClientValidationFunction="validatePromo"
    ErrorMessage="The promo code you entered is incorrect" OnServerValidate="ValidatePromoCode" />

И простой $ .ajax () функция ClientValidation

function validatePromo(src, args) {
    $.ajax({
        type: "POST",
        url: "Register.aspx/IsPromoValid",
        data: "{'code': '" + args.Value + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            args.IsValid = msg.d;
        }
    });
}

Проблема состоит в том, что страница проверяет немедленно и на самом деле не ожидает вызова ajax к концу. Если существуют какие-либо другие ошибки на странице, она показывает Сводку Проверки с ними, но никогда не показывает сообщение об ошибке от Нестандартного элемента верификации.

Я вижу, что вызов Ajax сделан в Firebug и этом returs правильный ответ (в этом TRUE или FALSE случая)

6
задан Marko 20 October 2010 в 21:49
поделиться