在 razor 语句中输入粗体标记 (@)
Enter bold tags in razor statement (@)
我试图在以下语句中输入粗体标记,但它们无法正确呈现。
@(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value)
非常感谢您的帮助!
这应该有效。
@if user.AlternateId.Any())
{
@id.Value <b>(</b> @id.Key.Substring(0,3) <b>)</b>
}
else
{
@id.Value
}
我希望你的 id.Key
的长度总是超过 3 个字符,否则调用 SubString
会给你一个例外。如果您对此不确定,您可以考虑编写自定义 Substring 方法(一种扩展方法),该方法在尝试执行 SubString 操作之前检查字符串长度,如 this post.
中所述。
对于字符串值,Razor 会自动 HTML 编码任何 HTML。为了解决这个问题,您需要将字符串转换为 IHtmlString
。最简单的方法是将 return 包装在 Html.Raw
:
中
@Html.Raw(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value)
或者,您可以简单地创建一个 MvcHtmlString
的实例(实现 IHtmlString
):
@(new MvcHtmlString(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value))
对于您的特定用例,在这里,Html.Raw
更直观,但在其他情况下(例如 HtmlHelper
扩展)知道您可以 return MvcHtmlString
.
的实例
我试图在以下语句中输入粗体标记,但它们无法正确呈现。
@(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value)
非常感谢您的帮助!
这应该有效。
@if user.AlternateId.Any())
{
@id.Value <b>(</b> @id.Key.Substring(0,3) <b>)</b>
}
else
{
@id.Value
}
我希望你的 id.Key
的长度总是超过 3 个字符,否则调用 SubString
会给你一个例外。如果您对此不确定,您可以考虑编写自定义 Substring 方法(一种扩展方法),该方法在尝试执行 SubString 操作之前检查字符串长度,如 this post.
对于字符串值,Razor 会自动 HTML 编码任何 HTML。为了解决这个问题,您需要将字符串转换为 IHtmlString
。最简单的方法是将 return 包装在 Html.Raw
:
@Html.Raw(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value)
或者,您可以简单地创建一个 MvcHtmlString
的实例(实现 IHtmlString
):
@(new MvcHtmlString(user.AlternateId.Count() > 1 ? id.Value + "<b> ( </b>" + id.Key.Substring(0,3) + "<b> ) </b>" : id.Value))
对于您的特定用例,在这里,Html.Raw
更直观,但在其他情况下(例如 HtmlHelper
扩展)知道您可以 return MvcHtmlString
.