Kann jemand diese ASP.NET-Syntax in RAZOR-Syntax konvertieren? Ich kann es nicht "eins zu eins" in Razor-Syntax konvertieren.MVC3 Razor-Syntax. Wie konvertiere ich diesen ASP.NET-Stil in Razor. (auch Probleme mit @ in Anführungszeichen)
<% Themes.ThemesAvailable().ForEach(i =>
{
if (i.Equals(Themes.ThemeToUse))
{%>
<a href="" id="A1" style="font-size:x-large;color:Red"><%:i%></a>
<%}
else
{%>
<a href="" style="color:Blue" id="ChangeThemeTo_<%:i%>"><%:i%></a>
<%} %>
<br />
<% });%>
Die folgende funktioniert nicht (beschwert sich über CS0201: Nur Zuordnung, anruf, Erhöhung, Senkung und neue Objekt Ausdrücke können als Anweisung verwendet werden)
@Themes.ThemesAvailable().ForEach(i => {
if (i.Equals(Themes.ThemeToUse)){
@:<a href="" id="A1" style="font-size:x-large;color:Red"> + @i + </a>
;}else{
@:<a href="" style="color:Blue" id='[email protected]'>@i</a>
;} })
und dies nicht funktioniert (plötzlich erwartet er '}' am oberen Rand der Seite line1 col1)
@Themes.ThemesAvailable().ForEach(i =>
{
if (i.Equals(Themes.ThemeToUse)){
@<text><a href="" id="A1" style="font-size:x-large;color:Red"> + @i + </a></text>
;} else {
@<text><a href="" style="color:Blue" id='[email protected]'>@i</a></text>
;}
})
scheint die @i innerhalb id = 'ChangeThemeTo_ @ i' von der Arbeit das Ende Text-Tag stoppt. Wenn ich das @ lösche, funktioniert das Element. Erhalten Sie den gleichen Fehler wie beim ersten Konvertierungsversuch (CS0201).
die Verwendung von Lambda-Entfernen, funktioniert dies aber nur, wenn ich das entfernen ‚@‘ von id = ‚ChangeThemeTo_i‘
@foreach (var i in Themes.ThemesAvailable()){
if (i.Equals(Themes.ThemeToUse)){
<a href="" id="A1" style="font-size:x-large;color:Red"> + @i + </a>
} else {
<a href="" style="color:Blue" id='ChangeThemeTo_i'>@i</a>
}
}
Nein. Scheint alles innerhalb des i => {...} gilt als Code. Also zum Ausbrechen scheint es @ vor zu stellen. Wie mein zweites Beispiel. Das funktioniert auch nicht ... Scheint so, als ob der Razor intellisense/Compiler innerhalb von Lambda-Ausdrücken nicht gut funktioniert ...? –
Wolf5
Ja, das habe ich gerade selbst gesehen. Haben Sie versucht, ein traditionelles for..each-Konstrukt zu verwenden, anstatt die ForEach() -Methode zu verwenden, um Ihre Daten zu durchlaufen? –
Der Code vs Tags funktioniert viel besser, wenn ich foreach() anstelle des Lambda-Ausdrucks. Aber nicht, wenn ich das @i innerhalb der Anführungszeichen auf dem ID-Tag habe. Das bricht es. Und ich bekomme Fehler von "}" in Zeile 1, Spalte 1 des Codes fehlt. – Wolf5