IHtmlString
대신 다음을 사용해야합니다 .
IHtmlString str = new HtmlString("<a href="/Home/Profile/seeker">seeker</a> has applied to <a href="/Jobs/Details/9">Job</a> floated by you.</br>");
HTML을 유지해야하는 모델 속성이나 변수가있을 때마다 이것이 일반적으로 더 나은 방법이라고 생각합니다. 우선 조금 더 깨끗합니다. 예를 들면 :
@Html.Raw(str)
비교 :
@str
또한 @Html.Raw()
데이터가 HTML인지 여부에 대한 우려가 컨트롤러에 유지되기 때문에를 사용하는 것보다 약간 더 안전하다고 생각합니다 . 프런트 엔드 개발자와 백엔드 개발자가있는 환경에서 백엔드 개발자는 어떤 데이터가 HTML 값을 보유 할 수 있는지에 더 잘 적응할 수 있으므로이 문제를 백엔드 (컨트롤러)에 유지합니다.
나는 일반적으로 Html.Raw()
가능할 때마다 사용하지 않으려 고 노력 합니다.
주목할 가치가있는 또 다른 한 가지는 당신이 어디에 할당 str
하고 있는지 잘 모르겠지만, 이것을 구현하는 방법과 관련하여 저와 관련된 몇 가지 사항입니다.
먼저 솔루션 ( IHtmlString
또는 Html.Raw
)에 관계없이 컨트롤러에서 수행해야합니다 . 여러분의 관점에서 이와 같은 논리는 실제로 거기에 속하지 않기 때문에 피해야합니다.
또한 ViewModel
보기에 값을 가져 오기 위해 를 사용해야합니다 (그리고 다시 이상적 IHtmlString
으로는 속성 유형 으로 사용 ). @Html.Encode(str)
예제를 단순화하기 위해이 작업을 수행하지 않는 한 이와 같은 것을 보는 것은 약간 문제가됩니다.
Html.Raw
도움이 될 것 같아요 .