English 中文(简体)
操纵(ASP.NET MVC)
原标题:String manipulation(ASP.NET MVC)
  • 时间:2009-09-22 07:32:18
  •  标签:

我在此有一部在我数据库中取得一定记录并显示其内容的法典,并有一个链接(“Read More”),使观众能够查阅该记录的详细网页。

    <%  Dim id As Integer = _news.Rows(count).Item("IDnews")%>
    <%=_news.Rows(count).Item("newsTitle")%>
    <img src= <%= Url.Content("~/NewsPictures/" + _news.Rows(count).Item("newsThumbnail")) %>  alt="" />
    <%Dim content As String = _news.Rows(count).Item("newsContent")%>

    <%If content.Length > 50 Then%>
    <%content = content.Substring(0, 150) & "..."%> 
    <%End If%>

    <%=content%>
    <%=Html.ActionLink("Read More", "NewsPublic", "Administration", New With {id}, DBNull.Value)%>

它展示了如下一些情况:

我们向你保证,联合国...... 阅读

我希望,最后一段话在删除之前完成,或者在删除之前可能要展示3句。 以上样本中的最后一个词应为大学。

最佳回答

你可以在150个性之后找到第一个空间,或者如果能够找到一个空间的话。 e.g.

<%content = content.Substring(0, (content.IndexOf(" ", 150) < 0 ? content.Length : content.IndexOf(" ", 150))) & "..."%> 

如果你知道有150个特性之后的空间,那么:

<%content = content.Substring(0, content.IndexOf(" ", 150)) & "..."%> 

足够

问题回答
content.Substring(0, content.IndexOf(" ", 150))

改为:

<%content = content.Substring(0, 150) & "..."%>

iii

<%content = GetStartOfString(content, 150) %>

然后,在公用事业类别中或在你保留重新使用的密码的地方,形成类似功能。

public static string GetStartOfString(string s, int length)
{
        if (s.Length <= length)
        {
            return s;
        }

        if(s.IndexOf(" ",length) > 0)
            return s.Substring(0, s.IndexOf(" ",length));   

        return s.substring(0,length);
 }

This way you have all the code in one place rather than spread across multiple places. (DRY) Also you could globalize the length in this method and have it work site wide iii just a small change.

另一种解决办法是将2个领域列入你的数据库。 主要内容为1,标题为1。 标题概述了主要内容并限于150个特性。 这将避免在你的看法中出现任何传教法,你的内容将得到更好的描述。





相关问题
热门标签