我们假设你有一个这样的模型属性:
[Display(Name = "Length (ft)"]
public double LengthFt {get; set;}
现在您需要另一个以米为单位的属性,将在输入和输出表单中使用:
[Display(Name = "Length (m)"]
[NotMapped]
public double LengthMeters
{
get => LengthFt * 0.3048;
set => LengthFt = value / 0.2048;
}
这应该有用吗?我的(比这更复杂的例子)正在研究" get"部分(设置LengthFt时正确返回LengthMeters),并且正在处理Create表单(ASP.Net Core MVC的标准Create视图),但不在Edit上。编辑表单显示正确的初始值,但是当我覆盖它并单击"保存"时,两个字段现在都是0.这就像编辑没有看到对NotMapped的更改元素,但Create动作确实。
是否有更优雅的方式来处理这些类型的转换?
答案 0 :(得分:0)
在控制器中Edit方法的Bind命令中省略了“ LengthMeters”。正确绑定后,此技术似乎可以正常工作。
仍然想知道是否有更优雅的方法可以做到这一点,但现在看来它正在起作用。