2

不知道怎么可能,但我在课堂上有这个:

public string TextNotIncluded 
{ 
    get
    { 
        return ("which is <u>not</u> included in the Quote");
    }
}

和正在显示在我的视图中,而不是没有下划线的单词<u></u>我对 C# 不熟悉。

谁能提供一个快速的答案?

谢谢。

编辑:

在我看来,我只是这样称呼它:@MyClass.TextNotIncluded。在我的情况下,用它包裹起来@Html.Raw效率不高,因为我在几十个视图中都散布了它。

4

5 回答 5

10

这样做从根本上没有错,但它可能不会呈现您所期望的方式。

您可以@Html.Raw按照其他人的建议使用,但我认为最好以表明它可能包含 html 的方式明确声明您的模型。您可能希望为此使用MvcHtmlString该类:

public MvcHtmlString TextNotIncluded 
{ 
    get { return MvcHtmlString.Create("which is <u>not</u> included in the Quote"); }
}

然后在您看来,您可以使用:

@Model.TextNotIncluded
于 2013-04-15T20:39:51.427 回答
7

如果您使用的是 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.
于 2013-04-15T20:39:41.620 回答
4

要输出原始 HTML,请使用RawHTML 帮助程序:

@Html.Raw(TextNotIncluded)

这个助手不对输入进行 HTML 编码,所以使用它时要小心。

于 2013-04-15T20:39:14.000 回答
1

您需要对字符串进行 HTML 编码。大多数人都推荐 MVC 方法,但我会让它更独立于表示层。

public string TextNotIncluded { 
    get { 
        return System.Web.HttpUtility.HtmlEncode("which is <u>not</u> included in the Quote"); 
    }
}
于 2013-04-15T20:41:02.200 回答
1

你可以使用

@Html.Raw(Model.TextNotIncluded)

或者

@MvcHtmlString.Create(Model.TextNotIncluded)

在你看来。

但最好更改属性的返回类型:

public MvcHtmlString TextNotIncluded
{
    get
    {
        return MvcHtmlString.Create("which is <u>not</u> included in the Quote");
    }
}
于 2013-04-15T20:46:05.630 回答