Как получить одно значение json с помощью Webmatrix / razor?

Я пытаюсь получить только одно значение из некоторого json и использую консоль JavaScript в Chrome, чтобы попытаться отладить его. Я пробовал Request ["id"] и Request.Params ["id"], и он ничего не захватывает. Я проверил через отладчик Chrome Javascript, что значение передается, но я не могу извлечь значение с помощью веб-матрицы. Кто-нибудь может помочь?

код из 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 ответ

Решение

Следующее должно работать:

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

Убедитесь, что вы не отправляете { id : 'value' } как строка, а скорее как объект javascript, как показано. Также, если вы выполняете этот ajax-запрос внутри функции обратного вызова действия click какой-либо ссылки или отправки формы, убедитесь, что вы отменили действие по умолчанию, вернув false в конце, иначе запрос ajax может не успеть быть выполненным.

Другие вопросы по тегам