2017-08-24 80 views
0

我正在ASP.NET MVC中工作,並且在我的視圖中檢查了一些問題,如果從我的模型傳遞的字符串是否爲空。檢查從模型中傳遞的字符串的長度

我有一個<p> - 標籤,一個<div>裏面,像這樣:

<div class="category-text"> 
    <p class="sidebar-text">@Html.Raw(Model.Text)</p> 
</div> 

這在某些情況下,將持有的文字在某些情況下也不會,所以我想包含這個<p>全格 - 標籤不顯示如果文本爲空。我爲此寫了一個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-對象中。

我錯過了什麼?

回答

0

環繞<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> 

那麼對於<div>的HTML應該是這樣的:

<div class="category-text @(String.IsNullOrEmpty(Model.Text) ? String.Empty : invisible)"> 
    <p class="sidebar-text">@Html.Raw(Model.Text)</p> 
</div> 
+1

錯字,讓'(Model.Text)':) –

+0

太棒了。我只需要顯示div,它運行良好。謝謝! –

0

如果問題只是爲了顯示包含文本,如果Model.Text不爲空或爲空,那麼你可以做的div:

@if(!String.IsNullOrEmpty(Model.Text)) 
{ 
    <div class="category-text"> 
     <p class="sidebar-text">@Html.Raw(Model.Text)</p> 
    </div> 
} 

這簡單地解決了您的問題。