在 MVC 中,您可以使用 Html 助手可以读取的值来装饰属性。例如 Html.LabelFor() 读取属性的显示属性。我想知道,是否有可能做到这一点以获得完整的价值?我正在探索通过使用属性来控制品牌信息的可能性。这是我的设想:
[Branded]
public string Greeting { get; set; }
然后当该属性被读出时,该属性将运行并通过其他一些机制提取品牌信息。我认为我走这条路的原因是我们需要能够品牌化并提供本地化。所以它最终可能会做这样的事情
[Localized]
[Branded]
public string Greeting { get; set; }
[Localized] 从资源文件加载信息,而不是在视图中拉取信息。这样做的原因是我们不想在整个会话中传递 ResourceManager,一旦实现,这对管理器来说可能会更干净。
我敢肯定这已经让人们畏缩了,但我还是想探索一下。所以我想知道是否有人可以为我指出正确的方向或提供任何与 MVC4 中的品牌相关的经验。
更新:
好的,既然我遵循了下面关于创建属性的一些回答,我对我的问题的真正含义有了更好的了解,所以让我澄清一下:
我创建了一个属性,我可以在视图模型中使用属性名称来装饰属性,该属性可以存储为资源,也可以通过其他方式来适应信息品牌。所以下一步就是把它放到视图中。那么如何将该注释拉到视图中呢?我正在考虑扩展,所以它会是这样的:
视图模型
[Branded("greeting")] // this creates a string property called "Value"
public string Greeting { get; set; }
看法
@Html.BrandedFor(m => m.Greeting) //this should actually read from BrandedAttribute.Value on this property