Click here to Skip to main content
15,881,248 members
Articles / Web Development / XHTML

Data Validation Using Annotations for jQuery AJAX Calls in MVC Applications

Rate me:
Please Sign up or sign in to vote.
4.76/5 (14 votes)
4 Jul 2011CPOL9 min read 114.3K   2K   38  
This article presents an example of how to use data annotations to validate data received from jQuery AJAX calls and how to send validation result as well as HTML content from a partial view to the client in a JSON object in MVC.
$(document).ready(function () {

    // Set up the click event on the button to make
    // the ajax call to add the student.
    $("#btnAddStudent").click(function () {

        // collect the data to a Json object.
        var data = {
            LastName: $.trim($("#LastName").val()),
            FirstName: $.trim($("#FirstName").val()),
            Score: $.trim($("#Score").val())
        };

        $.ajax({
            cache: false,
            type: "POST",
            url: addStudentUrl,
            data: data,
            dataType: "json",
            success: function (data) {
                // There is no problem with the validation
                if (data.Valid) {
                    $("#divStudent").html(data.StudentsPartial);
                    $("input").val("");
                    return;
                }

                // Problem happend during the validation, display
                // the messages. The following script will display the last
                // message related to the field.
                $.each(data.Errors, function (key, value) {
                    if (value != null) {
                        $("#Err_" + key).html(value[value.length - 1].ErrorMessage);
                    }
                });
            },
            error: function (xhr) {
                alert(xhr.responseText);
                alert("Critical Error!. Failed to call the server.");
            }
        });
    });

    $("#btnClear").click(function () {
        $(".errormsg").html("");
        $("input").val("");
    });

    // Set up the change event to the textboxes, so when user
    // makes changes, clear the error messages associated to the textbox.
    $("input").keyup(function () {
        var $errorDiv = $("#Err_" + this.id);
        if ($errorDiv.html() != "") {
            $errorDiv.html("");
        }
    });
});

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.

Comments and Discussions