在MVC中显示几行文本

时间:2013-05-17 17:29:40

标签: javascript asp.net-mvc-3

我正在使用MVC3并希望在Blogging系统中显示3行Post,然后添加一个链接以发布其余帖子,您可以在大多数博客中看到样本,例如this

这是我的观点:

@model IEnumerable<Blog.Web.UI.ViewModels.PostViewModel>
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div>

    @foreach (var item in Model)
    {
        <div>
            <h3>
                @Html.ActionLink(item.Title, "Post", "Blog", new { postId = item.Id, postSlug = item.UrlSlug }, null)
            </h3>
        </div>
        <div>
            <span>Category: </span>@item.Category
        </div>
        <div>
            <span>Tag: </span>@item.Tag
        </div>
        <div>
            @item.CreationDate.ToLongDateString()
        </div>

        <div>
            @Html.DisplayTextFor(p => item.Body)
        </div>
    }
</div>

如图所示

   @Html.DisplayTextFor(p => item.Body)

显示整个帖子,但我想像我引用的链接那样做,我认为可以通过javascript但我不知道如何!

1 个答案:

答案 0 :(得分:1)

看起来您提供的示例会修剪超过给定长度的任何额外文本。您可以通过修改ViewModel来执行相同的操作:

class PostViewModel 
{
    public string Body {get;set;}
    public string ShortBody 
    {
        get
        {
            return Body.Length <= 140
                ? Body
                : Body.Substring(0, 140) + "...";
        }
    }
}

然后将DisplayTextFor行更改为:

@Html.DisplayTextFor(p => item.ShortBody)