2013-02-11 5 views
7

Ich freue mich auf Feedback über die beste und einfachste Möglichkeit, serverseitige Variablen von einer Controller-Aktion zu den Seiten HTML-Markup übergeben und für sie dann von Javascript auf der Website verwendet werden.Weitergabe von Server-Seite MVC-Variablen zu Javascript

Ich arbeite mit asp.net mvc4 und versuche, die empfohlene Methode dafür zu finden.

+3

Google-Suche gibt Tonnen Ergebnisse ... –

+1

@emrenevayeshirazi: Oh, was für ein nützliches Kommentar auf Stack-Überlauf! Sk8erPeter

Antwort

19

Sie haben ein paar Optionen.

Man verbindet Datenattribute oder ID's mit Elementen und holt sie mit Javascript.

Mit rasiermesser Ansichten:

<div id="someid" data-name="@item.attribute"></div> 

JS:

$('#someid').data('name') 

Oder Sie können die Daten direkt in ein Script-Tag machen.

Mit Rasiermesser:

var somevar = "@item" 

können Sie Json.Encode auch komplexere Objekte.

var somevar = @Html.Raw(Json.Encode(object)) 
+4

Um Declans Antwort zu betonen, wenn Sie die 'var somevar =" @item "; -Methode verwenden, müssen Sie sie so in die Anführungszeichen einschließen, dass eine Anweisung, die als var' somevar =; '. Dies mag für Strings und ähnliches einfach erscheinen, ist aber weniger offensichtlich, wenn es um nullable booleans, nullable integers usw. geht. –

+0

Ich würde den ersten Ansatz (in einem Div- oder versteckten Input-Tag) für eine bessere Trennung von Inhalt und Code. In der Minute, in der Sie ein

Verwandte Themen