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

问题描述 投票:2回答:1

我需要呈现资源文件中存在的HTML链接

[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."

我需要在View上渲染它,以便链接可以点击。尽管我尝试了什么方法,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”的名称“而不是资源文件中的字符串。

有任何想法吗?谢谢。

c# asp.net-mvc razor html-helper
1个回答
2
投票

好吧,现在这突然决定在最后一次愚蠢的尝试后工作。对于任何在未来遇到此类问题的人:

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

@using StringResources = Namespace.Resources.StringResources

...

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

...

多么浪费一个早晨。

© www.soinside.com 2019 - 2024. All rights reserved.