Ich habe eine Situation, wo ich Daten von Ajax Anruf erhalte. Ich möchte eine Aktionsmethode aufrufen und Daten als Argumente übergeben. Die an die Aktionsmethode übergebenen Daten sollten den Objekteigenschaften in der Parameterliste zugeordnet werden. Hier ist meine Klasse, die FullQuestion heißt.Wie komplexe JSON-Objekt in Mvc-Aktionsmethode übergeben?
public class FullQuestion : Question
{
public string Title { get; set; }
public string Content { get; set; }
public List<Tag> Tags { get; set; }
}
Hier ist meine Ajax-Aufruf Methode
var finalTagResultText = {Title: "title", Content: "content",Tag: { tagName: "tname", tagDescription: "tdesc"},Tag: { tagName: "tname1", tagDescription: "tdesc1"}};
$.ajax({
url: '@Url.Action("AskQuestion", "Dashboard")',
type: "POST",
data: JSON.stringify(finalTagResultText),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
window.location.href = "@Url.Action("Questions", "Dashboard")";
}
});
Hier ist meine Aktionsmethode.
[HttpPost]
[ActionName("AskQuestion")]
public void AskQuestion_Post(FullQuestion question)
{
}
Ich möchte das JSON-Objekt als FullQuestion-Objekt übergeben erhalten. Ich benutzte json2-Bibliothek, um von der Stingify-Methode Gebrauch zu machen. Ich bekomme den Titel und den Inhalt Text aber kein Tag-Objekt. Irgendeine Idee, wie kann ich das erreichen? Danke im Voraus.
Danke für Ihre Hilfe Menschen. Es hat mein Problem gelöst. In Bezug auf den Rat, ich weiß, dass Posting-Daten mit Ajax Anruf wahrscheinlich nicht der beste Weg ist, aber ich habe eine Situation, wo meine Daten dynamisch mit einem anderen Ajax-Aufruf genommen werden. Daher kann ich sie nicht in HTML-Hilfsklassen platzieren. Vielleicht gibt es eine bessere Lösung für diesen Fall, aber ich weiß nicht wie! Prost :) –
In diesem Fall müssen Sie möglicherweise Ajax verwenden (aber ohne den Rest des Codes zu kennen, ist es schwierig, sicher zu sein, was der beste Ansatz ist) –