1

我是一个完整的 ASP.NET 新手,所以这可能很简单。

我有一个标签,该标签使用以下伪代码在后面的代码中动态设置文本

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day);

SOME-DYNAMIC-MESSAGE 有一种形式,其中 {0} 和 {1} 指的是变量名称和日期。

Hello {0}, today is {1}.

我需要将这些变量加粗。我正在尝试将它们包装在跨度中,因此我可以使用此代码从 CSS 访问它们

HtmlGenericControl bold = new HtmlGenericControl("span");
    bold.InnerText = name;
    bold.Attributes.Add("class", "bold");

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), bold, day);

但它不起作用,没有添加额外的包装器。它甚至停下来向我展示变量的内容。

有人知道如何解决这个问题吗?

4

2 回答 2

1

尝试 :

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");
于 2015-02-16T16:14:25.873 回答
0

这是一个演示方法的快速示例应用程序(控制台应用程序)。我认为您正在尝试格式化输入字符串String.Format并使font-weight令牌 ( {0}, {1}, 等...)加粗

使用它Func<string,string>来格式化输入字符串。然后将以下 CSS 添加到您的 html 页面:

class Program
{
    static void Main(string[] args)
    {
        var input = @"Hello {0}, today is {1}.";

        Func<string, string> SomeDynamicMessage = s => {
            var val = s;
            val = val.Replace("{", "<span class='bold-token'>{");
            val = val.Replace("}", "}</span>");
            return val;
        };

        Console.WriteLine(SomeDynamicMessage(input));

        // output: Hello <span class='bold-token'>{0}</span>, today is <span class='bold-token'>{1}</span>.
        var final = Console.ReadLine();
    }
}

Css 片段:

.bold-token { font-weight: bold; }

最终输出:

Hello <span class='bold-token'>{0}</span>, today is <span class='bold-token'>{1}</span>

编辑——更多信息

以下是您应该如何使用它:

var input = @"Hello {0}, today is {1}.";
label.Text = string.Format(SomeDynamicMessage(input), "test", "Thursday");

输出将是:

Hello <span class='bold-token'>test</span>, today is <span class='bold-token'>Thursday</span>
于 2015-02-16T16:09:44.933 回答