簡體   English   中英

檢查從模型傳遞的字符串的長度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM