使用视图模型中的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; }

如何在视图模型上添加属性,使其显示在标签的标题标签中?

使用视图模型中的LabelFor设置标题属性

看看本教程,它基本上是在做你想做的事情,只是设置一个工具提示而不是标题属性:

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") })