MVC-äquivalent von @Html.ActionLink durch javascript
Wie code ich das äquivalent von ein @Html.ActionLink durch javascript-code, d.h. Aufruf einer MVC-Aktion, die dann eine neue Ansicht erstellen, ohne wieder auf die aufrufende Sicht?
InformationsquelleAutor der Frage Martin | 2012-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
javascript
ist eine client-side-Sprache, die nicht wissen, etwas über die server-side-Sprache, die Sie verwenden. So ist es normal, dass es gibt keine Entsprechung in javascript für die server-seitige Helfer, erzeugt eine url mit Ihrem server-side-route Definitionen.Ist es nicht ganz klar, was Sie versuchen zu erreichen, aber wenn Sie verwenden möchten, rufen Sie einige url über javascript könnte man generieren, diese url mit einem server-side-Helfer:
Wenn Sie möchten, verwenden Sie diese url in eine separate javascript-Datei, wo Sie keinen Zugriff auf server-side-Helfer konnte man noch, je nach situation, diese url in einigen DOM-element.
Beispiel:
Beachten Sie die
data-url
HTML5-Attribut, das haben wir, eingebettet in die DOM-und verwendet eine server-side-Helfer, um sicherzustellen, dass die erzeugte url wird immer richtig sein, basierend auf unserer routing-Definitionen. Nun konnten wir in einer separaten javascript-Datei unauffällig abonnieren Sie den click-event des div und abrufen der url:Andere Beispiele umfassen offensichtlich die standard -
<a>
und<form>
Elemente, die erzeugt werden sollen, mithilfe des server-side HTML-helpers und dann alles, was Sie zu tun haben, in separaten javascript-Datei zu Holen, Ihre entsprechendenhref
oderaction
Parametern zum abrufen der eigentlichen url und tun etwas mit ihm.InformationsquelleAutor der Antwort Darin Dimitrov
Andere option ist, um die URL in einem hidden
<div>
irgendwo auf Ihrer Seite und rufen Sie es per Javascript später. Es würde dann so Aussehen:Index.cshtml:
Dann können Sie diesen in Ihrem Script.js - Datei zu erstellen, die links, die Sie wollen.
Den URL-Variablen enthalten eine websichere link zu
/SomeController/SomeAction
.InformationsquelleAutor der Antwort MSOACC