Ajax.BeginForm,调用Action,返回JSON,如何访问OnSuccess JS函数中的JSON对象?
Ajax.BeginForm
调用一个动作,然后返回JSON。 如何在OnComplete
js函数中访问JSON对象?
所以我的Ajax.BeginForm
看起来像这样……
using (Ajax.BeginForm("Coupon", new AjaxOptions { OnSuccess = "CouponSubmitted" }))
我的OnSuccess
function看起来像这样……
function CouponSubmitted() { var data = response.get_response().get_object(); alert(data.success); }
我也试过……
function CouponSubmitted(data) { alert(data.success); }
我的控制器“优惠券”返回此…
return Json(new { success = false, nameError = nameError, emailError = emailError });
关于如何访问返回的Json的任何想法?
function OnSuccess(e) { //function CouponSubmitted(data) in the question var json = e.get_response().get_object(); alert(json.success); }
这就是AJAX.BeginForm OnSuccess回调期望你做的事情,以恢复你的JSON。
希望我在一段时间内将这个可笑的“特征”下载给别人一些时间。
我遇到了这个问题,寻找在ASP.NET MVC 4中做同样事情的答案,并且没有上述工作,所以对于任何寻找答案的人来说,当你在js中重用它时,数据已经从json编码了function
public ActionResult Something() { return Json(new { result = 0, message = "Testing" }); } ... new AjaxOptions { HttpMethod = "POST", OnSuccess= "something" } ... function something(data) { switch(data.result) { case 1: alert(data.result) break; case 0: alert(data.result) break; case -1: alert(data.result) break; default: alert(data.message); } }
这不适用于OnComplete我认为它没有paramtars来重现数据。
在asp.net mvc 4中
function CouponSubmitted(data) { alert(data.success); }
将返回解析’json’
这是自己做这个post的一个例子,但概念是一样的。 注意onsuccess函数的参数。 该参数使您可以访问控制器返回的内容。 如果它是Json数据那么这就是你得到的。 如果控制器返回部分视图,那么您将获得视图的html。 您可以对返回的数据调用JQuery $ .ParseJSON()函数。
$.post('/Assessment/GetAssessmentResults/' + SelectedId, function onsuccess(e) { var json_object = $.parseJSON(e); }, "POST");