2011-07-09 48 views
2

我想从一些json中抓取一个单一的值,并使用Chrome的javascript控制台来尝试和调试它。我已经尝试了Request [“id”]和Request.Params [“id”],它没有抓取任何东西。我已经通过chrome javascript调试器验证了该值正在通过,但我无法使用webmatrix将值拉出。任何人都可以帮忙吗?通过AJAX进入这个网页Default.cshtml如何使用Webmatrix /剃须刀获得单个json值?

$.ajax({ 
    type: 'POST', 
    data: encodedItemId, //looks like { id : value } 
    dataType: 'json', 
    url: '/actions/act_markCompleted.cshtml', 
    success: function(data){ 
     alert(data); //trying to view the json data 
    } 
}); 

帖子

代码,act_markCompleted.cshtml

@{ 
    var itemId = Request["id"]; 

    var data = "The id is: " + itemId; 

    var db = Database.Open("VacationBuddyDB"); 
    var sql = "UPDATE Items SET completed = @0 WHERE Id = @1"; 

    db.Execute(sql, true, itemId.AsInt()); 

    Json.Write(data, Response.Output); 
} 

回答

3

下面应该工作:

$.ajax({ 
    type: 'POST', 
    data: { id : 'value' }, 
    dataType: 'json', 
    url: '/actions/act_markCompleted.cshtml', 
    success: function(data) { 
     alert(data); 
    } 
}); 

请确保您有不会将{ id : 'value' }作为字符串发送,而是作为JavaScript对象发送,如图所示。另外,如果您在某些链接或表单提交的点击操作的回调中运行此ajax请求,请确保您通过在最后返回false取消默认操作,或者ajax请求可能没有时间执行。

+0

非常感谢您的帮助!是的,事实证明,我从jquery.json-2.2.min.js使用的$ .toJSON() 函数将整个事件转换为一个字符串。你摇滚!再次感谢! – cpeele00