2012-09-10 6 views
5

Mögliche Duplizieren:
using razor within javascriptWie verwende ich Razor-Werte in einer JavaScript-Funktion?

Ich möchte auf einer Rasierklinge Seite ein siimple Wert aus dem Modell platzieren und es als einen konstanten Wert in einer JavaScript-Funktion verwenden. d. h.

<script> var myValue = @Model.myRecord.Count();</script> 

so dass myValue = die Anzahl der Datensätze in meinem Modell. Ich verwende myRecord.Count als Beispiel, es könnte ein beliebiger Wert aus meinem Modell sein.

Ist das möglich?

TIA J

OK ich auf die folgende Lösung gestolpert:

<script> var myValue = @(Model.myRecord.Count())</script> 

gerade dabei inder zusätzliche Klammern geholfen.

+2

JA es ist möglich. Stehen Sie vor Fehlern? – Shyju

+1

Dieser Code sollte funktionieren. Was ist der Fehler? – Paul

Antwort

8

Sicher, stellen Sie sicher, dass Sie es richtig codieren. Zum Beispiel könnten Sie JSON kodieren das gesamte Modell selbst:

@model IEnumerable<MyViewModel> 
<script type="text/javascript"> 
    var model = @Html.Raw(Json.Encode(Model)); 
    // at this stage the model javascript variable represents the JSON encoded 
    // value of your server side model so that you can access all it's properties: 
    alert(model.length); 
</script> 

oder:

alert(model[2].Foo.Bar); 

oder was auch immer.

Aber wenn man nur über die Anzahl der Elemente innerhalb des Modellpflege (wenn dieses Modell eine Sammlung darstellt):

var count = @Html.Raw(Json.Encode(Model.Count())); 
alert(count); 
2

Stellen Sie sicher, dies in einer Razor-Datei ist:

<script> var myValue = @Model.myRecord.Count();</script> 

Wenn es in nur einer js-Datei ist, wird das Razor-Motor, der Code nicht ausgeführt.

Verwandte Themen