2017-01-23 7 views
0

In meinem ASP.Net MVC 5-Projekt habe ich eine Cshtml-Datei und es hat ein Ansichtsmodell. Jetzt habe ich im View-Modell eine String-Variable namens Temp, die ich an einen Ajax-Aufruf übergeben muss.So senden Sie Modelldaten über AJAX-Aufruf

Wie kann ich die Variable Temp in Skript erfassen und an Ajax-Aufruf senden Ich kann den Wert von TEMP im Entwickler-Tool sehen. enter image description here

EDIT

Ok habe ich etwas, was wie unter

var e = "@Model.Temp"; 

Ich bin Anfänger bin ich nicht sicher, ob dies der richtige Weg ist. Bitte führe mich.

Antwort

1

Nun, technisch gesehen, alles, was Sie tun müssen, ist es mit Anführungszeichen zu umgeben, so dass, sobald es von Razor Server-Seite gemacht hat, ist es nicht eine JS Syntaxfehler Client-Seite schafft:

var e = '@Model.Temp'; 

Die Wie Sie es jetzt haben, wird der Inhalt der Variablen direkt in den JS-Code ausgegeben. Zum Beispiel, wenn Model.Temp"foo" war, dann würde Ihr gemacht JS-Code wie folgt aussehen:

var e = foo; 

Dann weil foo nicht als Variable in Ihrem JS definiert ist, erhalten Sie einen Syntaxfehler. Wohingegen, mit den Zitaten, Sie würden erhalten:

var e = 'foo'; 

Making es nur eine JS-Zeichenfolge, und völlig in Ordnung.

Dies ist jedoch nicht sehr robust und erfordert, dass Sie das Skript in Ihrer Ansicht behalten. Es wäre besser, einen Namensraum JavaScript-Variablen zu erstellen und verwenden Sie dann, dass später in Ihrem JS-Code:

<script> 
    var MyNamespace = MyNamespace || {}; 
    MyNamespace.MyVariable = '@Model.Temp'; 
</script> 

<!-- other JS code, preferably loaded externally rather than inline --> 
+0

Vielen Dank für der Namespace antwortet. Es ist sehr hilfreich. Ich habe heute etwas Interessantes und Neues gelernt. :) – Unbreakable

1

Es sieht aus wie Sie Anführungszeichen um die Variable in Razor benötigen:

var e = "@Model.Temp"; 
Verwandte Themen