Je suis assez confus avec la façon de mélanger rasoir et js. C'est la fonction actuelle avec laquelle je suis coincé:
<script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { data.push([ @r.UnixTime * 1000, @r.Value ]); }
Si je pouvais déclarer le code c # avec <c#></c#>
et tout le reste était le code JS – ce serait ce que je suis après:
<script type="text/javascript"> var data = []; <c#>@foreach (var r in Model.rows) {</c#> data.push([ <c#>@r.UnixTime</c#> * 1000, <c#>@r.Value</c#> ]); <c#>}</c#>
Quelle est la meilleure méthode pour y parvenir?
Utilisez <text>
:
<script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { <text> data.push([ @r.UnixTime * 1000, @r.Value ]); </text> } </script>
À l'intérieur d'un bloc de code (par exemple, @foreach
), vous devez marquer le balisage (ou, dans ce cas, Javascript) avec @:
ou la <text>
.
Dans les contextes de balisage, vous devez entourer le code avec des blocs de code ( @{ ... }
ou @if
, …)
Vous pouvez également utiliser
<script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { @:data.push([ @r.UnixTime * 1000, @r.Value ]); } </script>
Note @:
Ne jamais mélanger plus de langues.
<script type="text/javascript"> var data = @Json.Encode(Model); // !!!! export data !!!! for(var prop in data){ console.log( prop + " "+ data[prop]); }
Enveloppez votre code Razor dans @ {} lorsque vous êtes dans le script JS et soyez conscient d'utiliser simplement @ Parfois, cela ne fonctionne pas:
function hideSurveyReminder() { @Session["_isSurveyPassed"] = true; }
Cela produira
function hideSurveyReminder() { False = true; }
Dans le navigateur = (