Quelqu'un peut-il convertir cette syntaxe ASP.NET à la syntaxe RAZOR? Je ne peux pas le convertir "one to one" en syntaxe Razor.Syntaxe MVC3 Razor. Comment puis-je convertir ce style ASP.NET en Razor. (aussi questions avec @ entre guillemets)
<% 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 />
<% });%>
Ce qui suit ne fonctionne pas (se plaint CS0201: Seule l'affectation, appel, incrément, décrément, et de nouvelles expressions d'objet peut être utilisé comme une déclaration)
@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>
;} })
et cela ne fonctionne pas (tout d'un coup, il attend '}' en haut de la page 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>
;}
})
le Semble @i dans les id = 'ChangeThemeTo_ @ i' arrête la fin du texte balise de travail. Si je supprime le '@', l'élément fonctionne. Mais obtenez la même erreur que la première tentative de conversion (CS0201).
Retrait de l'utilisation de lambda, cela fonctionne, mais seulement si je retire le « @ » de 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>
}
}
Non. Tout est considéré comme du code dans i => {...}. Donc, pour sortir il semble @ doit être mis en face de. Comme mon deuxième exemple. Cela ne marche pas non plus ... On dirait que le Razor intellisense/compilateur ne fonctionne pas très bien dans les expressions lambda ...? –
Wolf5
Oui, je viens de le voir moi-même. Avez-vous essayé d'utiliser une construction for..each traditionnelle au lieu d'utiliser la méthode ForEach() pour faire défiler vos données? –
Le code vs tags fonctionne beaucoup mieux quand je fais foreach() au lieu de l'expression lambda. Mais pas si j'ai le @i dans les citations sur le tag d'identification. Cela le brise. Et j'obtiens des erreurs de '}' manquantes sur la ligne 1, colonne 1 du code. – Wolf5