[英]Check length of String passed from Model
我在ASP.NET MVC中工作,在我看來,檢查從模型傳遞的字符串是否為空時遇到一些問題。
我在<div>
內有一個<p>
-tag,如下所示:
<div class="category-text">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
在某些情況下將保留文本,而在某些情況下則不保留文本,因此如果文本為空,則我希望包含此<p>
-tag的整個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
。
我想念什么?
用if
語句將<div>
包圍起來,如下所示:
@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>
然后<div>
的HTML如下所示:
<div class="category-text @(String.IsNullOrEmpty(Model.Text) ? String.Empty : invisible)">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
如果問題只是顯示Model.Text不為Empty或null時包含文本的div,則可以執行以下操作:
@if(!String.IsNullOrEmpty(Model.Text))
{
<div class="category-text">
<p class="sidebar-text">@Html.Raw(Model.Text)</p>
</div>
}
這只是解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.