-1

我有一个博客,想获得帖子标题的简短文本

例如("This is original post title")

("This is orig....")

我的视图助手:

@helper Render(Post post, 
               System.Web.Mvc.HtmlHelper html, 
               bool isAdmin, bool showComments) 
{
    <div class="postTitle"> <a href="@Href("~/Posts/Details/" + post.ID)">
       <h1>@post.Title.Take(34)</h1></a><br /><br />
    </div>

但我得到System.Linq.Enumerable+<TakeIterator>d__3a``1[System.Char]了冠军的位置。

4

2 回答 2

5

如果您需要一种防弹的方法来做到这一点,请使用此扩展方法

public static class StringExtensions {
    public static string TrimWithEllipses(this string s, int left) {
        if (s.Length < left)
            return s;
        else
            return s.Substring(0, left) + "...";
    }
}

并这样称呼它:

@post.Title.TrimWithEllipses(34);
于 2013-09-29T17:15:47.757 回答
3

利用Substring

@post.Title.Substring(0, 34) + "...";

并且必须检查标题是否有 34 个字符的条件。

编辑:必须检查条件

@post.Title.Length >34 ?  @post.Title.Substring(0, 34) + "..." :  @post.Title;
于 2013-09-29T17:05:02.720 回答