Может кто-нибудь преобразовать этот синтаксис ASP.NET в синтаксис RAZOR?Я не могу преобразовать его «один в один» в синтаксис Razor.
<% 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 />
<% });%>
Следующее не работает (жалуется на CS0201: только присваивание, вызов, приращение, уменьшение и новые выражения объекта могут использоваться какутверждение)
@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>
;} })
и это не работает (внезапно он ожидает '}' в верхней части страницы 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='ChangeThemeTo_@i'>@i</a></text>
;}
})
Кажется, @i внутри id = 'ChangeThemeTo_@i 'останавливает работу конечного текстового тега.Если я удаляю '@', элемент работает.Но получите ту же ошибку, что и при первой попытке преобразования (CS0201).
Удаление использования лямбды, это работает, но ТОЛЬКО если я удалю '@' из id = 'ChangeThemeTo_i'
@foreach (var i in Themes.ThemesAvailable()){
if (i.Equals(Themes.ThemeToUse)){<br>
<a href="" id="A1" style="font-size:x-large;color:Red"> + @i + </a>
} else {<br>
<a href="" style="color:Blue" id='ChangeThemeTo_i'>@i</a>
}
}