Asp.Net MVC3 RC Razor Ansichten: Syntax für Code Einbettung innerhalb Block
-
25-09-2019 - |
Frage
Probleme Einbettung c # -Code zu haben in einem JavaScript-Block mit MVC3 RC1 Rasierer Ansicht. Was Syntax soll ich diese Arbeit machen? Ich erhalte Warnungen zB. Erwartetes Konstante auf der ISOK Variable unter anderem. (Ohne Text-Tag, wird der folgende Code nicht als Javascript erkannt)
@{bool isOk = true;}
<script type="text/javascript">
var tmp1 = "";
@if (isOk)
{
<text>
var tmp=""; // this should be interpreted as javascript
</text>
}
</script>
Lösung
Sie müssen den <text>
Tag, um anzuzeigen, dass der Inhalt nicht auf dem Server ausgewertet wird. Zum Beispiel:
@{
var isOK = true;
}
<script type="text/javascript">
var tmp1 = "";
@if (isOK)
{
<text>
var tmp = "foo";
</text>
}
</script>
ausgeben wird in der Ergebnisseite:
<script type="text/javascript">
var tmp1 = "";
var tmp = "foo";
</script>
Was die Expected Constant
Warnung betroffen ist, na ja, ist Razor Intellisense noch in der Betaphase, so dass es bei weitem nicht perfekt ist. Es ist nur eine Warnung Sie ignorieren. Das Wichtigste ist, was ist, dass die Anwendung funktioniert und gibt gültige HTML. Hoffe, dass dies etwas ist, das im Endprodukt festgelegt werden. Aus eigener Erfahrung sind die einzigen Warnungen Ich vertraue darauf, die ein durch den C # -Compiler emittiert. Wenn ich in einer Ansicht arbeite ich alle bescheißen Warnungen ignorieren, dass Visual Studio aussendet, weil ich weiß, dass es falsch ist.
Andere Tipps
Eine Alternative (mehr terse und einfacher IMO zu lesen) ist, um Text zu entkommen wieder aus wie folgt:
<script type="text/javascript">
var tmp1 = "";
@if (isOK)
{
@:var tmp = "foo";
}
</script>