2009-07-07 3 views
0

ist es möglich, so etwas wie die folgend in ASP.NET zu tun:Gibt es eine Möglichkeit, ASP.NET-Inline-Code in HTML-Klammern zu verschachteln (oder zu escapen)?

<tr<%= index++ % 2 == 0 ? " class=\"alt-row\"" : ""; %>> 

mit anderen Worten, ist es eine Möglichkeit, die spitzen Klammern für den Inline-Code-Block oder etwas zu entkommen?

(ich weiß, ist die Alternative.

<% if (index++ % 2 == 0) { %> 
    <tr class="alt-row"> 
<% } else { %> 
    <tr> 
<% } %> 

Ich bin nur neugierig, wenn die andere Art und Weise möglich ist)

+0

Ich bin mir nicht sicher, ob ich verstehe, was Sie fragen, Ihre erste Codezeile sieht gut aus. – AnthonyWJones

+0

Verwenden Sie die Alternative - es ist viel einfacher zu lesen! – Quentin

Antwort

5

Ja, Sie können dies (zumindest in MVC), obwohl Ihr Beispiel ein paar Fehler hat.

Hier ist eine feste Version:

<tr<%= index++ % 2 == 0 ? " class=\"alt-row\"" : "" %>> 
+0

ok, das hat funktioniert. Ich habe versucht, den Platz für diejenigen zu vermeiden, die die Klasse nicht haben. – gabe

+0

Ich habe das Beispiel aktualisiert, um das zu tun. –

+0

Der zweite Fehler, BTW, war das zusätzliche Semikolon am Ende, das nicht mit% = –

0

Haben Sie versucht noch? Ein ähnlicher Test hat mir gut getan.

+0

ja, ich habe und es hat nicht für mich gearbeitet. hast du genau das gemacht was ich gemacht habe ?? – gabe

+0

Könnte es nur der fehlende Abstand zwischen dem tr und dem <% sein? Können Sie den resultierenden HTML-Code posten? – Lazarus

0

Ich habe die <%%> konstruieren innerhalb Tags verwendet, um Eigenschaften zuweisen, so würde ich mir vorstellen, dass dies funktionieren würde. Hat es nicht funktioniert?

0

bereits.

<tr class="<%= index++ % 2 == 0 ? "alt-row" : "" %>">