누구든지이 ASP.NET 구문을 RAZOR 구문으로 변환 할 수 있습니까? Razor 구문으로 "일대일"로 변환 할 수 없습니다. (MVC3 면도기 구문. 이 ASP.NET 스타일을 면도기로 어떻게 변환합니까? (따옴표 안에 @가 붙은 문제)
@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>
;} })
이 작동하지 않습니다
<% 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)){
@<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>
;}
})
이드 내의 @i 보이는데) 페이지 줄 1 COL1의 상단의 '}'나는 @ ChangeThemeTo_ '를 기대한다. '@'를 제거하면 요소가 작동합니다. 첫 번째 전환 시도 (CS0201)와 동일한 오류가 발생합니다.
람다의 사용을 제거,이 내가 제거 할 경우에만 '@'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>
}
}
아니요. i => {...} 내의 모든 내용이 코드로 간주됩니다. 그래서 탈옥하려면 @은 앞에 놓여 야합니다. 내 두 번째 예처럼. 그것도 작동하지 않습니다 ... 면도기 intellisense/컴파일러는 람다 표현 내에서 아주 잘 작동하지 않는 것 같아 ...? –
Wolf5
네, 방금 저 자신을 보았습니다. ForEach() 메서드를 사용하여 데이터를 순환하는 대신 전통적인 for..each 구조를 사용하여 시도해 보셨습니까? –
lambda 표현식 대신 foreach()를 수행하면 코드 대 태그가 훨씬 잘 작동합니다. 하지만 id 태그에 따옴표 안에 @i가 있으면 안됩니다. 그것은 그것을 깨뜨린다. 그리고 코드의 1 행 1 열에 '}'이 누락 된 오류가 발생합니다. – Wolf5