如何在c#字符串属性中插入HTML标签?
本文关键字:插入 HTML 标签 属性 字符串 | 更新日期: 2023-09-27 18:09:33
不知道如何,如果它是可能的,但我有这个类:
public string TextNotIncluded
{
get
{
return ("which is <u>not</u> included in the Quote");
}
}
在我的视图中显示的是<u>
和</u>
,而不是没有下划线的单词。我不熟悉c#。
谁能提供一个快速的答案?
谢谢。编辑:
在我看来,我只是把它命名为:@MyClass.TextNotIncluded
。在我的情况下,用@Html.Raw
包装它是无效的,因为我在几十个视图中都有这种情况。
这样做并没有什么本质上的错误,但它可能不会以你期望的方式呈现。
你可以像其他人建议的那样使用@Html.Raw
,但我认为最好明确地声明你的模型,以表明它可能包含html。您可能需要使用MvcHtmlString
类来代替:
public MvcHtmlString TextNotIncluded
{
get { return MvcHtmlString.Create("which is <u>not</u> included in the Quote"); }
}
然后在视图中使用:
@Model.TextNotIncluded
如果你使用Razor,字符串默认是html编码的-你需要使用Html.Raw
来关闭编码:
@Html.Raw(x.TextNotIncluded)
在ASPX引擎中,您将使用<%= %>
<%= x.TextNotIncluded %> - this gives you the raw text
<%: x.TextNotIncluded %> - this HTML-encodes your text - you don't want this.
要输出原始HTML,请使用Raw
HTML帮助器:
@Html.Raw(TextNotIncluded)
这个帮助器不对输入进行HTML编码,所以使用时要小心。
需要对字符串进行HTML编码。大多数人都推荐MVC方法,但我想让它更独立于表示层。
public string TextNotIncluded {
get {
return System.Web.HttpUtility.HtmlEncode("which is <u>not</u> included in the Quote");
}
}
您可以使用
@Html.Raw(Model.TextNotIncluded)
或
@MvcHtmlString.Create(Model.TextNotIncluded)
但是最好改变属性的返回类型:
public MvcHtmlString TextNotIncluded
{
get
{
return MvcHtmlString.Create("which is <u>not</u> included in the Quote");
}
}