2016-04-06 8 views
0

Ich habe dies in meiner cshtml-Seite.System.Web.Optimization.Styles.Render rendern nicht in @if-Anweisung

<head> 
@if (MethodCallThatReturnsBool()) 
{ 
    System.Web.Optimization.Styles.Render("~/css/bundle"); 
} 
</head> 

Wenn MethodCallThatReturnsBool true zurückgibt, werden keine Skripts gerendert. Wenn ich die Render-Anweisung aus dem @if-Block verschiebe:

<head> 
@System.Web.Optimization.Styles.Render("~/css/bundle"); 
</head> 

Die Dateien meines Bundles sind im head-Tag aufgeführt.

Warum funktioniert der Render-Aufruf nicht innerhalb eines @if-Blocks?

+0

können Sie bitte Ihre Controller-Code zeigen, wo Sie einrichten 'MethodCallThatReturnsBool()'? –

Antwort

1

Der Unterschied ist, dass, wenn es funktioniert, ersetzen Sie die @System.Web.Optimization.Styles.Render("~/css/bundle"); mit der Textausgabe dieses Aufrufs, die im Kopf hinzugefügt wird, so dass der Browser es analysieren kann und die relative Anfrage ausführt. Wenn Sie die „if“ Sie in einer Erklärung, so dass Sie manuell haben, um die Ausgabe von @System.Web.Optimization.Styles.Render("~/css/bundle"); wie folgt zu machen:

@if (MethodCallThatReturnsBool()) 
{ 
    System.Web.HttpContext.Current.Response.Write(System.Web.Optimization.Styles.Render("~/css/bundle")); 
}