Razor는 닫히지 않은 HTML 태그를 이해하지 못합니다.
RazorViewEngine을 사용하면 다음과 같이 할 수 있습니다.
if (somecondition) {
<div> some stuff </div>
}
그러나 나는 이것을 할 수없는 것 같습니다 (Razor는 혼란 스럽습니다).
if (somecondition) {
<div>
}
if (someothercondition) {
</div>
}
여는 HTML 태그와 닫는 HTML 태그를 다른 코드 블록에 넣어야하는 상황이 있습니다. Razor에서 어떻게 할 수 있습니까?
다음과 같이 시도하십시오.
if (somecondition) {
@:<div>
}
Darin의 대답을 설명하려면 다음과 같이 HTML 접두사를 붙입니다.
@:<html>
@ : Razor에서는 '무언가를 일반 텍스트로 렌더링'을 의미합니다.
또는 이것을 사용할 수 있습니다. 이것은 원래 작성한대로 HTML을 출력합니다 (HTML을 출력하려는 경우 Razor가 수행하는 자동 HTML 인코딩을 방지하는 데 사용할 수도 있습니다).
@Html.Raw("<html>")
(MS의 Html.Raw 참조-http://msdn.microsoft.com/en-us/library/gg568896(v=vs.111 ) .aspx )
사용자 지정 MVC 도우미 메서드를 만들 수 있습니다. 당신과 함께 네임 스페이스에 공용 정적 클래스 MyRenderHelpers를 만들고 System.Web.Mvc.Html
Html 메서드를 작성합니다.
namespace System.Web.Mvc.Html
{
public static class MyRenderHelpers
{
public static MvcHtmlString Html(this HtmlHelper helper, string html, bool condition)
{
if (condition)
return MvcHtmlString.Create(html);
else
return MvcHtmlString.Empty;
}
}
}
이제 면도기보기에서이 확장 메서드를 사용할 수 있습니다.
@Html.Html("<div>", somecondition)
이 작업을 수행해야한다는 사실은 일반적으로 뷰 코드가 올바르게 팩터링되지 않았 음을 나타냅니다. HTML의 특성은 균형 잡힌 태그 또는 자체 폐쇄 형 태그 (적어도 HTML 4에서는 HTML 5에서 멀어지는 것처럼 보임)를 갖는 것이며 Razor는 그 가정에 의존합니다. 조건부로 a <div>
를 출력하면 나중에 출력 할 수도 있습니다 </div>
. if
진술에 whoel 쌍을 넣으십시오 .
@if(something) {
<div>
Other stuff
</div>
}
그렇지 않으면 여기 와 같은 이상한 코드로 끝납니다 .
참고 URL : https://stackoverflow.com/questions/4809694/razor-doesnt-understand-unclosed-html-tags
'developer tip' 카테고리의 다른 글
요청 된 리소스는 HTTP 메서드 'GET'을 지원하지 않습니다. (0) | 2020.08.23 |
---|---|
일정량의 데이터가 전송 된 후 Chrome이 중단됨-사용 가능한 소켓을 기다리는 중 (0) | 2020.08.23 |
선행 및 후행 공백을 제거 하시겠습니까? (0) | 2020.08.23 |
HTML5를 사용하면 웹 앱이 P2P HTTP 연결을 만들 수 있습니까? (0) | 2020.08.22 |
같은 테이블에서 두 번 조인하는 가장 좋은 방법은 무엇입니까? (0) | 2020.08.22 |