Blazor 프로젝트에서 C # 바인딩을 사용하여 HTML 텍스트를 여러 줄로 만드는 방법은 무엇입니까?

알렉스 크리스텐슨

BlazorClientSide Razor Page 가있는 프로젝트가 있습니다. 해당 페이지에 여러 줄 텍스트를 표시하고 싶습니다. 예를 들면 다음과 같습니다.

시리즈를 찾을 수 없음
오류 메시지

그러나 텍스트는 @bind.

나는 \n개행을 만들기 위해 노멀 사용해 보았습니다 . 그것은 명령이라고 생각했지만, 텍스트에 새 줄을 만드는 대신 "공백"을 넣었습니다.

나는 또한 <br />본문에 쓰기 시도 했지만 그것은 단지 본문에 그것을 썼다.

내 면도기 페이지 :

<p>@resultString</p>

@code {
    string resultString = "Series not found \nError message";
}

코드 스 니펫의 입력을 사용하면 다음과 같은 출력이 예상됩니다.

시리즈를 찾을 수 없음
오류 메시지

user12207343

내가 생각할 수있는 유일한 방법은 Razor 템플릿을 사용하는 것입니다. \ r \ n, Envirnoment.Newline 및 다른 어떤 것도 컴파일러를 움직일 수 없습니다.

다음은 Razor 템플릿을 사용하는 작업 솔루션입니다.

<p>@resultString</p>

@code {
    RenderFragment resultString =  @<p>Series not found <br />Error message</p>;

}

업데이트 : 다음을 사용할 수도 있습니다.

MarkupString  resultString = (MarkupString) $"Series not found <br />Error message"; 

업데이트 2 : 문서에서 :

Render raw HTML Blazor는 일반적으로 DOM 텍스트 노드를 사용하여 문자열을 렌더링합니다. 즉, 포함 할 수있는 모든 마크 업은 무시되고 리터럴 텍스트로 처리됩니다. 이 새로운 기능을 사용하면 HTML 또는 SVG로 구문 분석 된 다음 DOM에 삽입 될 특수 MarkupString 값을 렌더링 할 수 있습니다.

경고 : 신뢰할 수없는 소스에서 생성 된 원시 HTML을 렌더링하는 것은 주요 보안 위험입니다!

MarkupString 유형을 사용하여 정적 HTML 콘텐츠 블록을 추가합니다.

@((MarkupString)myMarkup)

@functions {
    string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}

도움이 되었기를 바랍니다...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사