ASP.NET:使用HtmlGenericControl的文本粗体部分

ASP.NET:使用HtmlGenericControl的文本粗体部分,asp.net,htmlgenericcontrol,Asp.net,Htmlgenericcontrol,我是一个完全的ASP.NET新手,所以这可能很简单 我有一个标签,在代码中使用以下伪代码动态设置文本 label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day); SOME-DYNAMIC-MESSAGE的形式为,其中{0}和{1}表示变量name和day Hello {0}, today is {1}. 我需要将这些变量加粗。我试图将它们包装在span中,这样我就可以使用此代码从CSS访问它们 HtmlGenericC

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

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

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), name, day);
SOME-DYNAMIC-MESSAGE的形式为,其中{0}和{1}表示变量name和day

Hello {0}, today is {1}.
我需要将这些变量加粗。我试图将它们包装在span中,这样我就可以使用此代码从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);
但它不工作,没有额外的包装添加。它甚至停止向我显示变量的内容


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

下面是一个快速示例应用程序(控制台应用程序),演示一种方法。我认为您正在尝试为
string.format
设置输入字符串的格式,并使标记(
{0}
{1}
,等等)的
字体更为粗体

使用此
Func
格式化输入字符串。然后将以下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();
    }
}
最终输出:

Hello <span class='bold-token'>{0}</span>, today is <span class='bold-token'>{1}</span>
其结果是:

Hello <span class='bold-token'>test</span>, today is <span class='bold-token'>Thursday</span>
你好,今天是星期四
试试:

label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");
label.Text=string.Format(SOME-DYNAMIC-MESSAGE(ID,1),“+bold+”,“+day+”);

label.Text=string.Format(SOME-DYNAMIC-MESSAGE(ID,1),“+bold+”,“+day+”);然后我将其粘贴为答案:)我的解决方案将使格式字符串中的所有标记都加粗,方法是将它们包装在一个范围内,然后对该范围应用一种样式。如果输入为var input=string.format(“Hello{0},今天是{1}”),“test”,“星期四”);结果已经是“Hello test,今天是星期四”,而花括号将被替换。
Hello <span class='bold-token'>test</span>, today is <span class='bold-token'>Thursday</span>
label.Text = string.Format(SOME-DYNAMIC-MESSAGE(ID,1), "<span style=\"font-weight:bold\">" + bold + "</span>", "<span style=\"font-weight:bold\">" + day + "</span>");