How to use Ajax.BeginForm MVC helper with JSON result? How to use Ajax.BeginForm MVC helper with JSON result? javascript javascript

How to use Ajax.BeginForm MVC helper with JSON result?


You can use OnFailure and OnSuccess instead of OnComplete; OnSuccess gives you the data as a proper JSON object. You can find the callback method signatures burried in ~/Scripts/jquery.unobtrusive-ajax.min.js which you should load on your page.

In your Ajax.BeginForm:

new AjaxOptions    {        OnFailure = "onTestFailure",        OnSuccess = "onTestSuccess"    }

Script block:

<script>//<![CDATA[    function onTestFailure(xhr, status, error) {        console.log("Ajax form submission", "onTestFailure");        console.log("xhr", xhr);        console.log("status", status);        console.log("error", error);        // TODO: make me pretty        alert(error);    }    function onTestSuccess(data, status, xhr) {        console.log("Ajax form submission", "onTestSuccess");        console.log("data", data);        console.log("status", status);        console.log("xhr", xhr);        // Here's where you use the JSON object        //doSomethingUseful(data);    }//]]></script>

These signatures match success and error callbacks in $.ajax(...), which might not be such a surprise after all.

This was tested using with 1.6.3 and 1.7.2.


Try this:

var json_data = content.get_response().get_object();

this will give you result in JSON format and you can use json_data[0] to get the first record


Try using the below code:

<script type='text/javascript'>    function onTestComplete(content) {        var result = eval( '(' + content.get_data() + ')' );        alert(result.UppercaseName);    }</script>