Как получить одно значение 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 может не успеть быть выполненным.