2013-03-22 66 views
0

我在asp.net MVC应用程序工作,我加入了一个这样的ActionLink的:解析JSON来ajax.actionlink

<%= Ajax.ActionLink("Event Notifications", "processCallrecording", new { Id = ViewData["RecordingIDsEdit"] }, new AjaxOptions 
{ 
    OnSuccess = "StatusChanged", 
    HttpMethod = "POST" 
})%> 

我的控制器是这样的:

[HttpPost] 
     public JsonResult ProcessCallRecording(int Id = 0) 
     { 
int result = id; 
return Json(new {NewStatus = result.ToString()}); 
     } 

我的js函数是这样的:

function StatusChanged(data) { 
alert("order #:" + data.NewStatus + "has a new status: " 
    + data.NewStatus); 
} 

,我看到警报定义。我在这个问题上最近2个小时挣扎。请告诉我什么是错的?

+0

使用firebug或IE Developer工具来查看来自ajax调用的数据是什么?这是一个有效的JSON? – Shyju 2013-03-22 10:49:58

+0

返回的响应是:{“NewStatus”:“2.88000000000001”} – DotnetSparrow 2013-03-22 11:07:13

+0

您已经记录了“数据”变量? – karaxuna 2013-03-22 11:20:06

回答

0

试试这个

<%= Ajax.ActionLink("Event Notifications", "processCallrecording", new { Id = Convert.ToInt32(ViewData["RecordingIDsEdit"]) }, new AjaxOptions 
{ 
    OnSuccess = "StatusChanged", 
    HttpMethod = "POST" 
})%> 
为你,我已经使用可视数据,所以你缺少其转换成诠释

。还要确保我在动作链接之前添加了这些脚本。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>