【问题标题】:How do I get a single json value using Webmatrix / razor?如何使用 Webmatrix / razor 获取单个 json 值?
【发布时间】:2011-07-09 22:13:38
【问题描述】:

我试图从一些 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);
 }

【问题讨论】:

    标签: jquery json razor webmatrix


    【解决方案1】:

    以下应该有效:

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

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

    【讨论】:

    • 非常感谢您的帮助!是的,事实证明我在 jquery.json-2.2.min.js 中使用的 $.toJSON() 函数正在将整个事情变成一个字符串。你摇滚!再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2019-04-09
    • 2013-03-18
    • 2020-10-17
    • 1970-01-01
    • 2013-04-02
    相关资源
    最近更新 更多