在MVC3视图中输入后,显示度量单位的好方法是什么



我们开发了许多系统,这些系统的输入后面应该有一个相关的文本标签,作为度量单位。例如平方米、立方米、吨、立方英尺等。我不需要做任何巧妙的事情,比如在计量单位之间进行缩放。只要确保它易于更新和良好的实践。

正在寻找一种相当自动的东西。将度量单位绑定到特定属性。我们的屏幕混合了15种不同的测量单位,具有200多种属性

我使用ViewModels和Editor模板(尽管有些东西被硬编码为下拉列表或texteditorfor等,所以我可以添加类)。

有其他人遇到这个问题吗?我可以在视图中的字段后面对文本进行硬编码。还有比这更优雅的吗?也许是属性等?

任何人都对处理这件事的最佳方式有任何想法。

感谢

格雷姆,

在ViewModel中,您可以使用以下属性定义属性:

[Display(Name = "Unit - Meter square")]
public double Unit{ get; set; }

我不确定我是否错过了要点(我可能错过了!!),但我在各种项目中的各种属性上都广泛使用了这种方法。Dropdown在其"text"元素中显然是"自描述性的",因此不需要以相同的方式使用属性,尽管你可能希望以类似但更通用的方式来装饰它们:

[Display(Name = "Unit of measure")]
public double Unit{ get; set; }

祝好运

使用显示模板和更具体的类型。

例如,创建用于处理货币的Currency类。通过这样做,您可以知道是美分、美元还是其他什么,以及用户使用的货币。

当然还有更多的工作。但代码更健壮,更容易判断应该使用哪个单元。

这就是为什么我们使用TimeSpan,而不是可能包含毫秒、秒等的int

我目前的想法是添加一个属性,例如

[Unit(UnitOfMeasure.Mph)]
[Display(Name="Top Speed"]
public float TopSpeed {get;set}

然后创建一个Html.UnitOfMeasureDisplay帮助程序,或者尝试使用EditorTemplates自动包含它

最新更新