【发布时间】:2013-01-23 00:51:10
【问题描述】:
我正在开发一个使用 ASP.NET MVC 4 的应用程序。在某些方面,我觉得我正在从头开始学习一切:)。有人告诉我这是值得的。
我需要将一些 JSON 发布到我的控制器中的 Action。我的操作如下所示:
[Authorize]
public class MyController : Controller
{
[HttpPost]
public ActionResult RemoveItem(string itemID)
{
// Do stuff...
return Json(new { Status = 1, Message="Success" });
}
}
我的 JQuery 代码如下所示:
function removeItem(id) {
var json = { "itemID": id };
$.ajax({
type: "POST",
url: "/myController/removeItem",
contentType: "application/json; charset=utf-8",
data: json,
dataType: "json",
success: removeItemCompleted,
error: removeItemFailed
});
}
function removeItemCompleted(results) {
}
function removeItemFailed(request, status, error) {
}
在 Fiddler 中,我注意到返回了 500 错误。响应中的 TITLE 字段显示:“无效的 JSON 原语:itemID”。
我做错了什么?
谢谢!
【问题讨论】:
-
json变量的值是什么样的? -
如果这就是你要传递的全部内容,那么真的不需要创建变量。您的方法需要一个名为
itemID的字符串,因此您应该执行以下操作:data: { itemID: id }itemID周围没有引号 -
@MarcusRecck 没有双引号,它不是有效的 JSON。
-
我想学习 JSON 方法。我实际上需要传递更多数据。为了举例,我试图将其修剪下来。我的所有数据都是键/值对,但没有嵌套数组或类似的东西。这就是我想使用 JSON 的原因。
-
@BillJones - 明白了 - 但在这种情况下,除了 itemId 之外不需要传递任何东西。如果您的 Action 需要一个对象,那么您可以通过网络发送一个 json 字符串化对象。
标签: c# jquery json asp.net-mvc asp.net-mvc-4