ASP.NET MVC에서 작업 중이며 모델에서 전달 된 문자열이 비어 있는지 여부를 확인하는 데 몇 가지 문제가 있습니다.
나는이 <p>
돌며, -tag을 <div>
과 같이 :
<div class="category-text">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
어떤 경우에는 텍스트를 보유하고 어떤 경우에는 그렇지 않으므로 <p>
텍스트가 비어 있으면 이 태그를 포함하는 전체 div가 표시되지 않도록합니다. 이를 위해 jQuery 함수를 작성했습니다.
if ($(".sidebar-text").text().length) {
$(".category-text").show();
}
이 기능은 작동하는 것 같습니다. 예를 들어 "asd"를 <p>
-tag에 하드 코딩 하고 콘솔에 기록하면 "3"이 표시됩니다. 이것이 제가 예상하는 방식입니다.
내 문제는 사용하면 @Html.Raw(Model.Text)
항상 0이 반환되어 전체 category-text
div가 표시되지 않는다는 것입니다. Model.Text가 가치가 있다는 사실을 알고 @Html.Raw(Model.Text)
있으며 내 관점에서 다른 곳을 사용 하면 텍스트가 실제로 Model.Text
-object 에 있음을 증명합니다 .
내가 무엇을 놓치고 있습니까?
다음 <div>
과 같이 if
문으로 둘러싸십시오 .
@if(!String.IsNullOrEmpty(Model.Text))
{
<div class="category-text">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
}
이렇게하면 전체 <div>
가 DOM에서 사용할 수없는 응답으로 렌더링 되지 않습니다.
그러나 <div>
DOM에있는 것이 필요 하지만 빈 단락으로 인해 보이지 않는 경우 서버에서 CSS 가시성 속성을 설정할 수 있습니다. 예
<style>
.invisible { visibility: hidden; }
</style>
그러면의 HTML <div>
은 다음과 같습니다.
<div class="category-text @(String.IsNullOrEmpty(Model.Text) ? String.Empty : invisible)">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다