Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将HTML格式粘贴到C中的System.String对象中#_C#_Asp.net_String_String.format - Fatal编程技术网

C# 将HTML格式粘贴到C中的System.String对象中#

C# 将HTML格式粘贴到C中的System.String对象中#,c#,asp.net,string,string.format,C#,Asp.net,String,String.format,如何将HTML格式粘贴到C#中的字符串对象中 以下是我所拥有的: c.DepartmentAbbr.ToString() + " - (" + c.DepartmentName.ToString() + ")" 其中,c.DepartmentAbbr.ToString()和c.DepartmentName.ToString()都是使用LINQ从数据上下文中选择的字段 以下是我想要的: "<b>" + c.DepartmentAbbr.ToString() + "</b>

如何将HTML格式粘贴到C#中的字符串对象中

以下是我所拥有的:

c.DepartmentAbbr.ToString() + " - (" + c.DepartmentName.ToString() + ")"
其中,c.DepartmentAbbr.ToString()和c.DepartmentName.ToString()都是使用LINQ从数据上下文中选择的字段

以下是我想要的:

"<b>" + c.DepartmentAbbr.ToString() + "</b> - (" + c.DepartmentName.ToString() + ")"

RadComboxItem对象接受()、(字符串文本)或(字符串文本、字符串值),我使用后者。

如果您在网页上输出此内容,请尝试使用:

Server.HtmlEncode(string)
Server.HtmlDecode(string)

方法。

如果要在网页上输出,请尝试使用:

Server.HtmlEncode(string)
Server.HtmlDecode(string)
String.Format("<b>{0}</b> - ({1})", c.DepartmentAbbr, c.DepartmentName)
方法。

String.Format(“{0}-({1})”,c.DepartmentAbbr,c.DepartmentName)
String.Format("<b>{0}</b> - ({1})", c.DepartmentAbbr, c.DepartmentName)
下面是对C#中字符串格式的一个很好的参考:

String.Format(“{0}-({1})”,c.DepartmentAbbr,c.DepartmentName)
下面是对C#中字符串格式的一个很好的参考:


我想问题出在别的地方。您是将此字符串放在Label控件还是文字控件中?如果它是一个标签,我相信它为你逃避了文本。将其放在asp:Literal控件中。顺便说一句,您不需要太多地调用.ToString()。您只需使用:

"<b>" + c.DepartmentAbbr + "</b> - (" + c.DepartmentName + ")"
“+c.DepartmentAbbr+”-(“+c.DepartmentName+”)

而ToString()基本上将为您调用。

我认为问题出在其他地方。您是将此字符串放在Label控件还是文字控件中?如果它是一个标签,我相信它为你逃避了文本。将其放在asp:Literal控件中。顺便说一句,您不需要太多地调用.ToString()。您只需使用:

"<b>" + c.DepartmentAbbr + "</b> - (" + c.DepartmentName + ")"
“+c.DepartmentAbbr+”-(“+c.DepartmentName+”)

而ToString()基本上是为您调用的。

我想您正在寻找一种方法,让对象
c
吐出一个HTML格式的字符串

以此为例:

public class myExample : IFormattable{ private string myExampleStr; public myExample(string sampleStr){ this.myExampleStr = sampleStr; } /* Implement an Equals() function - OVERRIDE! */ public override bool Equal(object obj){ return true; } /* Implement an ToString() function - OVERRIDE */ public override string ToString(){ return this.myExampleStr; } /* Implement an GetHashCode() function - OVERRIDE */ public override int GetHashCode(){ return this.myExampleStr.GetHashCode(); } /* Here we implement the IFormattable interface */ public string ToString(string format) { return this.ToString(format, null); } public string ToString(IFormatProvider formatProvider) { return this.ToString(null, formatProvider); } public string ToString(string format, IFormatProvider formatProvider) { if (string.IsNullOrEmpty(format)) format = "G"; if (formatProvider != null) { ICustomFormatter formatter = formatProvider.GetFormat(this.GetType()) as ICustomFormatter; if (formatter != null) return formatter.Format(format, this, formatProvider); } switch (format) { case "b": return string.Format("<b>{0}</b>", this.myExampleStr); case "i": return string.Format("<i>{0}</i>", this.myExampleStr); default: return this.myExampleStr; } } } 此示例用于说明如何在
ToString()
方法中使用自定义参数,以便可以使用嵌入的粗体或斜体HTML标记,或基于此类的
ToString
函数所用参数的任何其他方式格式化值


这是否回答了您的问题?

我想您正在寻找一种方法,让对象
c
吐出一个HTML格式的字符串

以此为例:

public class myExample : IFormattable{ private string myExampleStr; public myExample(string sampleStr){ this.myExampleStr = sampleStr; } /* Implement an Equals() function - OVERRIDE! */ public override bool Equal(object obj){ return true; } /* Implement an ToString() function - OVERRIDE */ public override string ToString(){ return this.myExampleStr; } /* Implement an GetHashCode() function - OVERRIDE */ public override int GetHashCode(){ return this.myExampleStr.GetHashCode(); } /* Here we implement the IFormattable interface */ public string ToString(string format) { return this.ToString(format, null); } public string ToString(IFormatProvider formatProvider) { return this.ToString(null, formatProvider); } public string ToString(string format, IFormatProvider formatProvider) { if (string.IsNullOrEmpty(format)) format = "G"; if (formatProvider != null) { ICustomFormatter formatter = formatProvider.GetFormat(this.GetType()) as ICustomFormatter; if (formatter != null) return formatter.Format(format, this, formatProvider); } switch (format) { case "b": return string.Format("<b>{0}</b>", this.myExampleStr); case "i": return string.Format("<i>{0}</i>", this.myExampleStr); default: return this.myExampleStr; } } } 此示例用于说明如何在
ToString()
方法中使用自定义参数,以便可以使用嵌入的粗体或斜体HTML标记,或基于此类的
ToString
函数所用参数的任何其他方式格式化值


这回答了你的问题吗?

随着我越来越多的研究,我几乎得出结论,我想做的是不可能的。我使用RadComboBox将项目粘贴到中,但我必须在服务器端使用LINQ执行一些funcky操作,以便我必须使用items.Add方法将项目粘贴到组合框中,该方法只接受System.String。谢谢你们所有人的帮助和评论,但我想我只能将就着这件事了

这里还有一些我认为不重要的细节,但我认为现在它们一定很重要

这是我正在使用的控件。 ASPX代码:

我正在使用C#中的LINQ向该控件添加项: 受保护的无效页面加载(对象发送方、事件参数e) { 如果(!IsPostBack) { var abbr=从数据库中的c开始 其中c.DepartmentAbbr!=“BInst” 选择c

        foreach (var c in abbr)
        {
            String s = String.Format("{0} - ({1})", c.DepartmentAbbr, c.DepartmentName);
            rcbDepartments.Items.Add(new RadComboBoxItem(s, c.DepartmentID.ToString()));
        }
    }
}

RadComboxItem对象接受()、(字符串文本)或(字符串文本、字符串值),我正在使用后者。我非常确定,由于RadComboBoxItem仅接受字符串的限制,我无法在没有使用ASPX中的Item Template标记的情况下对项目进行HTML格式化。不幸的是,我不能这样做,因为这已经给我造成了一些其他问题,我对此感到遗憾正在做我目前正在尝试做的事情。

随着我越来越多的研究,我几乎得出结论,我想做的事情是不可能的。我使用RadComboBox将项目粘贴到其中,但我必须在服务器端使用LINQ做一些功能性的事情,这样我就必须使用items.Ad将项目粘贴到组合框中d方法,该方法只接受System.String。谢谢大家的帮助和评论,但我想我只能将就一下我在这种情况下所拥有的

这里还有一些我认为不重要的细节,但我认为现在它们一定很重要

这是我正在使用的控件。 ASPX代码:

我正在使用C#中的LINQ向该控件添加项: 受保护的无效页面加载(对象发送方、事件参数e) { 如果(!IsPostBack) { var abbr=从数据库中的c开始 其中c.DepartmentAbbr!=“BInst” 选择c

        foreach (var c in abbr)
        {
            String s = String.Format("{0} - ({1})", c.DepartmentAbbr, c.DepartmentName);
            rcbDepartments.Items.Add(new RadComboBoxItem(s, c.DepartmentID.ToString()));
        }
    }
}

RadComboxItem对象接受()、(字符串文本)或(字符串文本、字符串值),我正在使用后者。我非常确定,由于RadComboBoxItem仅接受字符串的限制,我无法在没有使用ASPX中的Item Template标记的情况下对项目进行HTML格式化。不幸的是,我不能这样做,因为这已经给我造成了一些其他问题,我对此感到遗憾正在进行我当前正在尝试的操作。

对于任何试图在ASP.NET MVC中执行此操作的人,

这不起作用:

<%=String.Format(resourceString, "<b>" & Model.UserName & "</b>")%>

粗体标记是HTML编码的,正如您所期望的那样

然而,这是一种享受:

<%=String.Format(resourceString, MvcHtmlString.Create("<b>" & Model.UserName & "</b>")%>

适用于任何试图在ASP.NET MVC中执行此操作的人

这不起作用:

<%=String.Format(resourceString, "<b>" & Model.UserName & "</b>")%>

粗体标记是HTML编码的,正如您所期望的那样

呵呵