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>
War es hilfreich?

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> 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top