在Truncate Razor助手的末尾更改文字颜色?

时间:2014-02-15 00:03:43

标签: asp.net-mvc asp.net-mvc-4 razor razorengine

我有一个基本的Truncate Razor助手,我正在尝试更改<text></text>中附加内容的颜色。这个元素是由剃刀引擎解析的,所以我不能使用编码的html / css(至少我没有找到方法)在此先感谢您的帮助。

这是基本的截断助手:

@helper Truncate(string input, int length)
{
    if (input.Length <= length)
    {
        @input
    }
    else
    {
        @input.Substring(0, length)<text> ...more</text> <!-- here //-->
    }
}

// Implementation of Truncate helper
    <textarea readonly>@Truncate(comment.Content, 250)</textarea>

注意:它与Craig's jQuery textAreaExpander的链接相似,可在点击时展开textarea

1 个答案:

答案 0 :(得分:1)

一种方法是在文本周围使用<span></span>标记。为此,您的Truncate助手将如下所示:

public static HtmlString Truncate(this HtmlHelper htmlHelper, string input, int length)
{
    if (input.Length <= length)
    {
        return new HtmlString(input);
    }

    input = input.Substring(0, length);

    // Build the span tags
    TagBuilder span = new TagBuilder("span");
    span.SetInnerText(" ... more");

    // Change the text color by either adding the style attribute or a class
    span.MergeAttribute("style", "color: red;");
    span.AddCssClass("some-class");

    return new HtmlString(input + span.ToString());
}

然后使用@Html.Truncate(comment.Content, 250)调用帮助程序。