呈现包含存储在资源文件中的 HTML 的显示名称

Rendering a display name containing HTML that's stored in Resource file

我需要渲染存在于资源文件中的 HTML link

[Display(Name = "MyPropertyName" ResourceType = typeof(Res.Props))]
public bool MyProperty{ get; set; }

MyPropertyName 资源有一些 HTML:

"Click <a href="bla.com">here</a> to find out more."

我需要在视图上呈现它,以便 link 可以点击。 HTML 永远不会呈现,无论我尝试什么方法,一些尝试(不是确切的语法,但你明白了要点)将显示原始 HTML,而有些则根本不显示任何内容。

var htmlLabel = Html.LabelFor(m => m."MyPropertyName" ).ToString()
Html.Raw(htmlLabel)

Html.Raw(Html.LabelFor(m => m."MyPropertyName" ).ToString())
Html.Raw(Html.LabelFor(m => m."MyPropertyName")

MvcHtmlString.Create(htmlLabel);
Html.Raw(MvcHtmlString.Create(htmlLabel))

等等

我发现了在控制器上获取属性信息并通过 ViewBag 传递它然后使用 HTML.Raw 渲染它的建议,所以我遵循了 this here(以及其他一些)但是那个代码仅提取 属性 "MyPropertyName" 的名称,而不是资源文件中的字符串。

有什么想法吗?谢谢。

好吧,在最后一次愚蠢的尝试之后,这突然决定起作用了。对于以后遇到此类问题的任何人:

该应用程序有一个 StronglyTypedResourceBuilder class,其中包含我需要的所有数据。所以下面的工作没有问题:

@using StringResources = Namespace.Resources.StringResources

...

@Html.CheckBoxFor(m => m.MyPropertyName)
@Html.Raw(@StringRes.MyPropertyName)

...

真是浪费了一个上午。