C# 将HTML格式粘贴到C中的System.String对象中#
如何将HTML格式粘贴到C#中的字符串对象中 以下是我所拥有的: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>
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编码的,正如您所期望的那样
呵呵