2015-02-12 64 views
0

如何在文章的簡短描述之後顯示「閱讀更多內容」的任何文章中添加「閱讀模式」或「繼續」。我是否需要將簡短描述分別保存在數據庫中?還是有什麼辦法來解決它的字符數將出現在家庭飼料和生成'讀更多'鏈接動態?如何在ASP.NET MVC4中實現「閱讀更多內容」

+0

_you_是什麼意思「讀更多」?該原理有許多實現。 – CodeCaster 2015-02-12 07:24:40

回答

0

您不能單獨存儲簡短描述,因爲您會在數據庫中複製數據,並且沒有真正的收穫。短文本可以通過String輕鬆獲得。 SUBSTR。有許多JavaScript庫,讓你自動處理這個像你這樣的jQuery https://github.com/viralpatel/jquery.shorten

0

你可以像這樣限制剃鬚刀視圖中的字符串;

//讓說你想顯示前100個字符你的文章,並有一個鏈接到完整的文章,

@myarticle.body.Substring(0,100) @Html.ActionLink("Read More", "Details", new {Id=myarticle.id}) 
如果你想點擊後閱讀更多您可以對您的顯示在同一頁面的文章

通過ajax調用獲取完整的文章/。

+1

如果你的'body'沒有標記標籤,並且你不在乎是否在中間分割了一個詞,這隻會工作得很好 – tofi9 2015-02-12 06:32:07

+0

謝謝。這個想法很有效。 – 2015-03-29 15:42:04

0

您可以將簡短描述保存爲單獨的列,但我不會嘗試重複數據(也如上面所述的slvperron)。這取決於你的要求。

一些新聞網站有:

News { 
title : String, // displayed in heading 
summary : String, // summarises the article, displayed in bold or other bg 
content : String, // the rest of the article 
} 

這種設置使用(HTML)標記了更多的靈活性。簡單的substring(0,100)可能會破壞中間某處的標記標記,並強制瀏覽器呈現錯誤。

0

您可以使用CSS來顯示一個行總結和jQuery它和全文版

HTML

<div class="summary text">@Model.YourReallyLongTextProperty</div> 
<a href="#">more</a> 

CSS

.summary { 
    width:250px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

之間切換腳本

$('a').click(function() { 
    var text = $(this).prev('.text'); 
    text.toggleClass('summary'); 
    if(text.hasClass('summary')) { 
    $(this).text('more'); 
    } else { 
    $(this).text('less'); 
    } 
}); 

Refer fiddle