使用视图模型中的LabelFor设置标题属性
本文关键字:LabelFor 设置 标题 属性 视图 模型 | 更新日期: 2023-09-27 18:20:32
我在前端有一个设置,在那里我使用标签中的title标记来显示带有文本的助手图标。
我想在标签的title标签中显示我的视图模型中的一个值(如<label title="TitleText">DisplayNameText</label>
)。
我有以下剃刀:
@Html.LabelFor(m=>m.FinancingPayout, new { Class = "infoicon" })
这是我的视图模型:
[DisplayName("- Udbetaling:")]
public string FinancingPayout { get; set; }
如何在视图模型上添加属性,使其显示在标签的标题标签中?
看看本教程,它基本上是在做你想做的事情,只是设置一个工具提示而不是标题属性:
http://buildstarted.com/2010/09/14/creating-your-own-modelmetadataprovider-to-handle-custom-attributes/
正如我在前面的评论中所说,对于通用解决方案,您需要做一些工作,但幸运的是,您可以复制/粘贴教程中的大部分代码。
更新:如果Stephen Muecke所说的是真的(我认为是真的),那么如果将Interface IMetadataAware
添加到自定义属性中,则可以跳过自定义元数据提供程序。它将自动添加到AdditionalValues
中。
试试这个
@Html.LabelFor(m=>m.FinancingPayout, new { @class = "infoicon", title = "TitleText" })
编辑1
您需要创建一个类似的方法(很可能是静态方法)
LocalizationLogic.cs
public static String GetLocalizedString(String keyName)
{
// you can apply database or from xml file logic here to get the Translated string
switch (keyName)
{
case "TitleText":
return "Localized Title Text";
break;
}
return String.Empty;
}
然后在视图中使用此方法
@Html.LabelFor(m=>m.FinancingPayout, new { @class = "infoicon",
title = LocalizationLogic.GetLocalizedString("TitleText") })