相同视图模型中由相同类键入的属性实例的不同标签



我试图得到一个页面呈现不同的标签,像这样:

<工具细节/strong>: ______________//描述的标签

<硬件细节/strong>: _______//标签

之后是描述

视图:

@model MyViewMode
@MyHelperFor(c => c.Tool.Description)
@MyHelperFor(c => c.Hardware.Description)

视图模型:

public class MyViewMode
{
public SubPropertiesVM Tool { get; set; } = new Tool ();
public SubPropertiesVM Hardware { get; set; } = new Hardware ();
}
public class SubPropertiesVM
{
public int ID { get; set; }
public string Description { get; set; }
public string SubPropertyLabel { get; set; }
}

如果我让系统默认属性名,那么我将为所有实例获得相同的标签。

我可以在SubPropertiesVM[DisplayName("Some label")]中装饰Description,但随后,同样的文本"Some label"将在页面中呈现两次。

我想在每次初始化时给SubPropertyLabel分配一个不同的值,然后以某种方式让Razor利用它。但是,我的理解是[DisplayName("")]不把变量作为参数。

我的助手有一个可选参数,并将其设置为标签。这确实很好。然而,每个视图模型在几个视图中使用。我不希望在每个视图上手动和重复地设置标签,而是为每个视图模型只设置一次。

是否可以在MyViewModel中设置SubPropertiesVM属性的标签文本?

您可以在创建属性时初始化这些属性,如下所示:

public SubPropertiesVM Tool { get; set; } = new Tool ()
{
Description = "Tool",
SubPropertyLabel = "ToolLabel"
};

Hardware属性做同样的操作,当然要加上另一个描述等。

那么ToolHardware将得到不同的描述。

相关内容

  • 没有找到相关文章

最新更新