我有一个JavaScript方法dotrack()
。我通过AJAX从JavaScript调用了一个动作UpdateJson
。我传递的是JSON数据类型,该方法将返回true/false
。执行系统后会进入成功阻止但返回的值不是true/false
。
我的问题是,系统是否正在正确调用操作。
function doTrack() {
var D = { 'pageUrl': PageURL, 'linkUrl': linkURL, 'linkName': linkText, 'linkType': ControlType, 'leadId': LeadID, 'userType': UserType, 'portalId': PortalID, 'languageId': LanguageID, 'countryId': CountryID };
D = JSON.stringify(D);
$.ajax({
type: "POST",
url: "portal/UpdateJson",
data: D,
contentType: "application/json; charset=utf-8",
success: function (result) {
if(result == true)
alert("Success");
else
alert(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError + " :: " + ajaxOptions);
//alert('unable to complete ajax request.');
}
});
}
控制器是Portal&行动是UpdateJson:
[HttpPost]
public ActionResult UpdateJson(string pageUrl, string linkUrl, string linkName, string linkType, string leadId, string userType, string portalId, string languageId, string countryId)
{
//do stuff
return Json(true);
}
请帮忙。
答案 0 :(得分:1)
你的ajax代码工作正常。
您只需要直接使用result
变量而不是result.val
。
success: function (result) {
exists = (result);
alert(exists);
}
如果要使用val
属性,则需要返回具有val属性的对象。
return Json(new { val = true });
此外,您应该使用Url.Action
来防止错误的网址。
url: "@Url.Action("UpdateJson", "portal")"