Gibt einen string zurück aus dem MVC Controller zu jQuery
Möchte ich einen Aufruf zu einer ASP.NET MVC4-Controller und haben Sie einen string zurückgeben, um eine jQuery-Methode, geben dann die Zeichenfolge mit einem alert(). Der folgende code gibt nur object Object
.
jQuery:
$launchTRs = function (appID) {
var html = $.get("/PartialView/GetTRAsString?appID=" + appID, function (data) { });
alert(html.toString());
}
ASP:
public string GetTRAsString(string appID)
{
//Populate revisions
string html = "<ul>";
foreach(RevesionInfo revInfo in revisions)
{
html += "<li>" + revInfo.RevDesc + "</li>";
}
html += "</ul>";
return html;
}
Outut:
[object Object]
Lernen, wie Sie mit jQuery ajax: api.jquery.com/jquery.get
Vereinbart. Dies ist eine einfache Falle, die Sie gerade nicht selbst Lesen den jQuery docs. StackOverflow ist nicht die alternative für TL;DR.
Ich kann nicht wirklich laut lachen, ich werde stören, meine Arbeitskollegen, aber das ist Brillant! Dies sollte das motto SO: StackOverflow ist nicht die alternative für TL;DR.
Vereinbart. Dies ist eine einfache Falle, die Sie gerade nicht selbst Lesen den jQuery docs. StackOverflow ist nicht die alternative für TL;DR.
Ich kann nicht wirklich laut lachen, ich werde stören, meine Arbeitskollegen, aber das ist Brillant! Dies sollte das motto SO: StackOverflow ist nicht die alternative für TL;DR.
InformationsquelleAutor John 'Mark' Smith | 2014-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
In ASP.NET MVC controller actions nicht die Rückgabe von strings. Sie kehren ActionResults.
So starten Sie durch Befestigung deine Aktion (Lesen Sie unten, um zu verstehen, warum ich die Befestigung in Kursiv ist es, weil das ist nur die erste Stufe):
Auch der erste, Einen Brief in AJAX steht für Asynchron, so sollte man die Warnung in Ihrem Erfolgs-callback, das ist der einzige Ort, wo das Ergebnis verfügbar sein wird:
Auch Bedenken, dass die Generierung von HTML-Code in einer controller-action ist eine schreckliche Idee. Das mischen von C# und HTML führt zu Hässlichkeit, die ich lieber nicht kommentieren.
In ASP.NET MVC, die
V
steht für die Ansicht, so gehen Sie vor, die Sie verwenden. Der Zweck einer controller-action abholen ein Modell, und übergeben Sie dieses Modell, um die Ansicht Projekt:und dann deine Sicht ist stark typisiert, das Modell und erzeugen Sie den nötigen markup innen:
Mixing C# and HTML leads to ugliness that I prefer not to comment.
nicht die eingebauteHTML helpers
das gleiche tun?InformationsquelleAutor Darin Dimitrov
Versuchen Sie dies:
Dann deine action-Methode:
InformationsquelleAutor James
Eine weitere Lösung mit der AJAX -
Controller-Action -
Anzeigen -
Und wenn Sie auf -
Die Warnung kommt immer der Fehler, weil es erwartet json. Entfernen Sie die Zeile: dataType: "json", und in den controller statt return Content(Eingabe + ", Hallo!!!", "text/html"); und die Warnung kommt von den Erfolg.
InformationsquelleAutor ramiramilu
Vorschlagen JSONResult zurückgeben, da es die meiste gängige Praxis für solche Fälle + Template-engine, wie Schnurrbart, oder was sonst immer, eher dann füllen Sie einfach handgemachte Vorlage in Werte auf der server-Seite.
wie diese:
server Sachen:
client-Zeug:
mehr Informationen über:
InformationsquelleAutor Eugene P.