开发者

ajax in asp.net mvc 2

I am using the microsoft ajax and the ajax form looks like this

<% using (Ajax.BeginForm("UserListing", new AjaxOptions
   {
       UpdateTargetId = "results",
       OnComplete = "getData"
   }))
   {%>
<input id="Submit1" type="submit" value="submit" />
<%} %>

Now, i get the getData() js function called upon completion of the ajax request. all i want is that i need to access the response data of this ajax request inside this function and prevent that data being directed to the div with id results.

Thats because i am returning json result from the controller's action method and i need to parse it and display in the div.

script function is :

<scr开发者_Go百科ipt type="text/javascript">
    function getData() {
        alert("Response is : ");
    }
</script>

the div tag is :

 <div id="results">
</div>

I do not want to use other than microsoft ajax. kindly suggest me accordingly.


You could try rendering the response of the ajax request in a partial view containing only hidden fields. Then in your js function you can access the hidden fields using jQuery selectors.

So your action would look something like

[HttpPost]
public ActionResult UserListing()
{
    List<string> data = GetUserListing();
    return PartialView(data);
}

Your partial view will then only contain hidden fields that you render something like:

<% for (int i = 0; i < Model.Count(); i++)
   { %>
       <input id="<%: "User" + i.ToString() %>" type="hidden" value="<%: Model[i] %>" />
<% } %>

That will render as:

<input id="User0" type="hidden" value="PeterSmith" />

Then in your javaScript function you can access each of the fields by doing something like:

function getData() {
    var user = $('#User0').val();
    alert(user);
}

That will show you the first field rendered. But you can enhance it a bit by looping through all the injected input fields.


Corrected this problem by myself as explained above. need some json parsers, currently looking for those..

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜