如何使用Webmatrix / razor获取单个json值?

时间:2011-07-09 22:13:38

标签: jquery json razor webmatrix

我试图从一些json中获取一个值,并使用Chrome的javascript控制台尝试调试它。我尝试了Request [“id”]和Request.Params [“id”]并且它没有抓取任何东西。我已经通过chrome javascript调试器验证了值是否正在进行,但我无法使用webmatrix将值拉出来。有人可以帮忙吗?

来自Default.cshtml的

代码

$.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
    }
});

通过ajax发布到此页面,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);
 }

1 个答案:

答案 0 :(得分: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请求可能没有时间执行。