我们开发了许多系统,这些系统的输入应该有一个相关的文本标签后面的度量单位。例如米方,米立方,吨,立方等。我不需要做任何聪明的事情,比如测量单位之间的比例。只需确保它易于更新和良好实践。
正在寻找合理自动化的东西。这将计量单位与特定财产联系起来。我们的屏幕将15种不同的度量单位与200多种属性相结合
我使用ViewModels和Editor模板(虽然有些东西被硬编码为下拉或texteditor等,所以我可以添加类)。
是否有其他人遇到此问题?我可以在视图中的字段后对文本进行硬编码。还有什么更优雅的吗?也许属性等?
任何人都对处理此问题的最佳方法有任何想法。
由于
答案 0 :(得分:2)
格雷姆,
在ViewModel中,您可以使用以下属性定义属性:
[Display(Name = "Unit - Meter square")]
public double Unit{ get; set; }
我不确定我是否错过了这一点(我可以!!),但我在各种项目的各种属性上使用这种方法相当广泛。显然,下拉菜单在“text”元素中会“自我描述”,因此不需要以相同的方式使用属性,因此您可能希望以类似但更通用的方式装饰它们:
[Display(Name = "Unit of measure")]
public double Unit{ get; set; }
祝你好运
答案 1 :(得分:1)
我的想法是添加一个属性,例如
[Unit(UnitOfMeasure.Mph)]
[Display(Name="Top Speed"]
public float TopSpeed {get;set}
然后做一些事情要么创建一个Html.UnitOfMeasureDisplay助手,要么尝试用EditorTemplates做一些事情来自动包含它。
答案 2 :(得分:1)
使用显示模板和更具体的类型。
例如,创建用于处理货币的Currency
类。通过这样做,你知道它是美分,美元或其他什么以及用户使用的货币。
更多工作,当然。但是代码更健壮,更容易分辨出应该使用哪个单元。
这就是为什么使用TimeSpan
而不是int
可能包含毫秒,秒等的原因。