반응형
사용 방법 ? : if 문에 레이저 및 인라인 코드가 차단
새로운 Razore 뷰 엔진으로 이전 .aspx 뷰를 업데이트하고 있습니다.다음과 같은 코드가 있는 곳이 많습니다.
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
이상적으로 이 작업을 수행하고 싶습니다.
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
하지만 여기에는 두 가지 문제가 있습니다.
vote-up@{puzzle.UserVote
@ 기호를 코드 블록의 시작으로 처리하지 않습니다.@puzzle.UserVote == VoteType.Up
첫 부분을 보다.@puzzle.UserVote
마치 변수의 값을 렌더링하는 것처럼.
이 문제들을 해결하는 방법을 아는 사람?
이렇게 하면 됩니다.
<span class="vote-up@(puzzle.UserVote == VoteType.Up ? "-selected" : "")">Vote Up</span>
@( condition ? "true" : "false" )
핵심은 @ 구분 기호 뒤에 괄호로 표현식을 캡슐화하는 것입니다.이러한 방식으로 모든 복합 표현식을 사용할 수 있습니다.
대부분의 경우 CD의 해결책은 완벽하게 잘 작동할 것입니다.하지만 저는 조금 더 꼬인 상황이 있었습니다.
@(String.IsNullOrEmpty(Model.MaidenName) ? " " : Model.MaidenName)
이렇게 하면 페이지에 가 인쇄되어 각각 소스가 생성됩니다.&nbsp;
이제 기능이 있습니다.Html.Raw(" ")
소스 코드를 작성할 수 있도록 되어 있지만, 이 경우 컴파일러 오류가 발생합니다.
컴파일러 오류 메시지:CS0173:'System' 간에 암시적 변환이 없으므로 조건식의 유형을 확인할 수 없습니다.Web.IHTmlString' 및 'string'
그래서 저는 다음과 같은 진술서를 쓰게 되었는데, 이것은 덜 친절하지만 제 경우에도 효과가 있습니다.
@if (String.IsNullOrEmpty(Model.MaidenName)) { @Html.Raw(" ") } else { @Model.MaidenName }
참고: 흥미로운 점은 일단 곱슬머리 받침대 안에 들어가면 레이저 블록을 다시 시작해야 한다는 것입니다.
언급URL : https://stackoverflow.com/questions/4770605/how-to-use-if-statements-with-razor-and-inline-code-blocks
반응형
'programing' 카테고리의 다른 글
Git Bash에 복사하여 붙여넣는 방법 (0) | 2023.05.18 |
---|---|
Postgre 설치 방법Ubuntu에서 SQL의 페이지 보석? (0) | 2023.05.18 |
VB.NET에서 부울을 정수로 변환 (0) | 2023.05.18 |
CStr() 대 Str() 대 . .문자열로() (0) | 2023.05.18 |
도커 합성을 사용하여 명명된 볼륨을 제거하시겠습니까? (0) | 2023.05.18 |