2011-01-11 9 views
2

ich eine Seite, wo ich möchte folgende HTML (eine kleine JS-Vorlage) machen -Escaping Inline-Code-Block in Asp.Net Vorlage

<script type="text/html" id="lightbox-template"> 
<div id="lightbox-background"></div> 
<div id="lightbox"><%= content %><div class="bottom"></div></div> 
</script> 

jedoch die Asp.NET Präprozessor auf die Abholung "<% =" tag und versuche es zu interpretieren. Ich möchte diesem Tag entkommen, damit es gerendert werden kann, vorzugsweise von der Vorlage und nicht von dem Code dahinter. Ist das möglich?

Ich habe es geschafft, dies über ein Literal-Steuerelement zu tun und seinen Text in den Code dahinter einzustellen.

Antwort

1

ich es ideal wollte halten innerhalb der Aspx-Seite. Dies ist die beste Lösung, die ich (from here) finden konnte, das

<script type="text/html" id="lightbox-template"> 
<div id="lightbox-background"></div> 
<div id="lightbox"><%= "<%= content %" + ">" %=><div class="bottom"></div></div> 
</script> 

Wichtiges Bit teilt das Schließen> in eine separate Zeichenfolge erstellt

: <% = "<% =% Bereich" + ">" % =>

+0

Das ist schrecklich! Ich denke, es wäre besser, die Einstellungen in Ihrem JS Template Tool zu ändern, um andere Marker zu verwenden. – UpTheCreek

+0

Einverstanden. Dadurch wurden die Vorlagen für einen NichtAsp.Net-Entwickler viel weniger lesbar. Es war jedoch ein benutzerdefiniertes Schablonenwerkzeug, bei dem die Markierungen nicht geändert werden konnten. Dies war die schnellste Lösung. – Spongeboy

-1

Dies geht in aspx

<div> <%= GetContentString() %> </div> 

Dies geht in aspx.cs

protected String GetContentString() 
    { 
     return "this is a content"; 
    } 
+0

Danke, aber im Idealfall wollte ich es in der aspx-Seite behalten. Ich könnte es auch in die aspx.cs-Seite mit einem Literal-Steuerelement setzen. – Spongeboy