Как получить одно значение json с помощью Webmatrix / razor? - PullRequest
2 голосов
/ 10 июля 2011

Я пытаюсь получить только одно значение из некоторого 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 Ответ

3 голосов
/ 10 июля 2011

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

$.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 может не успеть выполняться.

...