ActionLink in jQuery
Dies ist meine Methode:
$(document).ready(function () {
$('td.clickableCell').click(function () {
var currentObject = null;
currentObject = $(this).text();
@Html.ActionLink("GetThis", "Get", new {theName = currentObject} )
});
});
aber Sie sagt, dass currentObject existiert nicht im aktuellen Kontext. Wie man dieses Problem beheben?
Sie können nicht schreiben asp.net mvc-code in javascript
Also wie rufe ich die action-Methode auf, wenn ein button geklickt wird?
manchmal ist es am besten, Tauchen Sie ein und bitten Sie, die dummen Fragen. Ich finde, dass ich lernen schneller, die Art und Weise, anstatt zu versuchen, die Erinnerungen ein Buch oder 2
Also wie rufe ich die action-Methode auf, wenn ein button geklickt wird?
manchmal ist es am besten, Tauchen Sie ein und bitten Sie, die dummen Fragen. Ich finde, dass ich lernen schneller, die Art und Weise, anstatt zu versuchen, die Erinnerungen ein Buch oder 2
InformationsquelleAutor petko_stankoski | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt
@Html.ActionLink
sollten Sie die jQuery.erhalten Funktion. `@Html.ActionLink wird auf dem server ausgeführt, während javascript wird auf dem client ausgeführt.Den
Url.Action
auf dem server gerendert wird, und geben Sie die entsprechende url ein. Die$.get
eineget
Anfrage auf dem client.Halten Sie im Verstand, wenn das javascript ist in einer
.js
- Datei, dieUrl.Action
wird nicht ausgeführt. In diesem Fall können Sie wollen einfach nur, um es zu ersetzen mit/Get/GetThis
zu machen oder die url in einem hidden-Feld auf der Seite und erhalten den Wert des versteckten Feldes in Ihrem.js
Datei.Brauchen Sie eine action-Methode sieht wie folgt aus, um Zugriff auf die parameter:
Dieser leidet immer noch unter dem gleichen problem, dass die OP ursprünglich hat, nämlich die Vermischung von client-side code in server-side-code, der bereits auf dem server ausgeführt werden und wurde an den client ausgeliefert werden
Wenn dieser code in einer .cshtml-Seite der server-code Rendern wird die Url. Ich erwähnt in meinem letzten Absatz
Was ist mit meinem vorherigen Kommentar?
behoben 🙂
InformationsquelleAutor John Kalberer
currentObject
ist ein JavaScript-String-Objekt, das Sie versuchen, pass in die server-Seite code. Wenn Sie brauchen, um dies zu tun auf der client-Seite,Alternativ, ist es möglich, dass Sie brauchen, um zu senden den Wert an den server in irgendeiner Weise. Wenn das JavaScript oben ist innerhalb einer Razor-Ansicht, dann
Den
'@Url.Action("Action", "Controller")'
Teil wird bewertet wurden auf der server-Seite und wurde gelöst durch den UrlHelper, um den URL der route auf, dass die controller-action. Wir setzen diesen Wert in einfache Anführungszeichen ein, wie wir brauchen, es zu benutzen auf der client-Seite in JavaScript-Variablen. Dann fügen wircurrentObject
als Abfrage-parameter (und Kodieren Sie es in der gleichen Zeit).Was Sie brauchen, um passieren, um den controller - Wert von
currentObject
? Wie sollte es auch weitergegeben werden - per AJAX einen GET-request, eine POST-Anforderung? Wenn Sie mehr erarbeiten, was Sie zu tun versuchen, ich bin mir sicher, dass ich Ihnen helfen kannJa, ich muss übergeben Sie den Wert von currentObject. BEKOMMEN.
Aber wie Sie Zugang zu currentObject in der actionMethod?
Aktualisiertes Beispiel (fehlte uqery string Parametername). Wenn jetzt deine action-Methode nimmt eine
string theName
parameter, erhält es den Wert als argument übergeben.InformationsquelleAutor Russ Cam
Sie mischen client-side code, der mit serverseitigen code. Diese Zeile wird auf dem server ausgeführt vor nichts an den client gesendet:
Linie, dass, von selbst, Referenzen, etwas, das nicht existiert.
currentObject
der nicht vorhanden sein, bis es ist in JavaScript auf dem client. Dieser JavaScript-code, aus der Perspektive der server, ist nichts weiter als text.InformationsquelleAutor David