我该如何实现"阅读更多"在ASP.NET MVC4中

时间:2015-02-12 06:02:55

标签: c# asp.net-mvc-4

我如何添加'阅读模式'或者'继续'对于任何文章,这个'阅读更多'将在文章的简短描述后出现。我是否需要单独保存数据库中的简短描述?或者,有没有办法解决它,家庭饲料中出现的字符数量和生成“更多”'动态链接??

4 个答案:

答案 0 :(得分:0)

您不能单独存储简短描述,因为您在数据库中复制数据并且没有实际收益。使用String可以轻松获得短文本。 SUBSTR。有很多JavaScript库可以让你像jQuery https://github.com/viralpatel/jquery.shorten

那样自动处理这个

答案 1 :(得分:0)

您可以像这样限制剃刀视图中的字符串;

//假设您要显示文章的前100个字符,并提供指向完整文章的链接,

@myarticle.body.Substring(0,100) @Html.ActionLink("Read More", "Details", new {Id=myarticle.id})

如果您想在点击“阅读更多”后在同一页面中显示您的文章,您可以通过ajax调用获得完整的文章/。

答案 2 :(得分: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)可能会破坏中间某处的标记标记,并强制浏览器无法正确呈现。

答案 3 :(得分: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