C# 模型绑定自定义对象

C# Modelbinding custom object

我有一个 class 可以根据枚举集合在物理单位之间进行转换。在代码中,您可以在枚举上切换工程单位,对象将根据内部 (SI) 单位计算工程值。

现在我已经为 MVC 创建了一个编辑器模板来输入一个值及其工程单位。

我现在的问题是ModelBinder给属性赋值的方式不对,单位应该在赋值之前赋值,否则内部值计算错误。工程值赋值后立即计算内部值。

我可以创建一个自定义模型活页夹以按正确的顺序分配属性,但是有时同一个编辑器模板会在同一个视图页面上多次使用,我将如何在客户模型活页夹中处理这个问题?

-编辑- 我还可以为每个 "smart" 对象制作视图模型,并在控制器中转换它们,但不确定这是否合适,这意味着我必须为每个物理单元创建虚拟对象,但显然会分离我的视图来自我的 framework/logic

此致, 马丁

这是一个设计问题。

我建议使用不依赖于按特定顺序分配值的单独视图模型,然后将值映射到控制器中的 class。预控制器逻辑(动作过滤器和模型绑定器)跳出基于控制器的工作流程,这是一个不应该轻易做出的决定。