Post JSON zu ASP.NET MVC 4-Aktion von JQuery

Arbeite ich an einer app, die verwendet ASP.NET MVC 4. In gewisser Weise habe ich das Gefühl, ich Lerne alles von Grund auf :). Ich hab mir sagen lassen es lohnt sich.

Muss ich nach ein paar JSON auf eine Action in meinem controller. Meine Aktion sieht wie folgt aus:

[Authorize]
public class MyController : Controller
{
    [HttpPost]
    public ActionResult RemoveItem(string itemID)
    {
      //Do stuff...
      return Json(new { Status = 1, Message="Success" });
    }
}

Mein JQuery-code sieht wie folgt aus:

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) {
}

In Fiddler, Bemerke ich einen 500 Fehler zurückgegeben. Das TITEL-Feld in der Antwort, sagt: "Invalid JSON primitive: itemID".

Was mache ich falsch?

Danke!

  • Was macht Ihr json variable Wert Aussehen?
  • Wenn Sie ' re passing es gibt wirklich keine Notwendigkeit, um die variable zu erstellen. Deine Methode erwartet einen string namens itemID damit Sie tun sollten, so etwas wie: data: { itemID: id } Keine Anführungszeichen itemID
  • ohne die Anführungszeichen ist es kein gültiges JSON.
  • Ich möchte lernen, die JSON-Ansatz. Ich habe tatsächlich übergeben zu müssen, noch mehr Daten. Ich habe versucht, schneiden Sie es nach unten zum Wohle Beispiel. Alle meine Daten ist der Schlüssel/Wert-Paaren, obwohl keine verschachtelten arrays oder ähnliches. Das ist, warum ich wollen, verwenden Sie JSON.
  • Verstanden-aber in diesem Fall gibt es keine Notwendigkeit, pass alles andere als itemId. Wenn Ihr Action erwartet ein Objekt, dann könnten Sie schicken eine json-stringified Objekt über den Draht.
  • Heilige Kuh. Ich wünschte, ich hatte nicht durchforsten das internet auf der Suche für diesen post, jedes mal wenn ich ein neues MVC-Projekt, das muss post JSON zu einer action-Methode. Scheint es nicht schlecht zu jemand anderem, Sie müssen kopieren/einfügen dieses Zeug in jedem Projekt?

InformationsquelleAutor Bill Jones | 2013-02-07
Schreibe einen Kommentar