内置的EditorFor仅适用于成员访问表达式。
但是在一种情况下,我需要将值乘以100并将其放在文本框中。
这是因为该值表示百分比,并且用户应该能够输入27,其内部存储为0.27。
为此,有一些像EditorFor(m => m.MyValue * 100)
。
有没有相应的东西?
答案 0 :(得分:1)
只需在您的视图模型中添加MyValueAsPercentage
之类的内容:
public class MyDataModel
{
public double MyValue { get; set; }
}
// ...
public class MyViewModel
{
public double MyValueAsPercentage { get; set; }
public MyViewModel(MyDataModel dataModel)
{
this.MyValueAsPercentage = dataModel.MyValue * 100;
}
public MyDataModel ToDataModel()
{
return new MyDataModel() { MyValue = MyValueAsPercentage / 100 };
}
}
现在,您可以在视图模型上使用相同的成员访问表达式:
Html.EditorFor(m => m.MyValueAsPercentage)
希望这有帮助。
答案 1 :(得分:1)
您可以尝试在属性中添加属性
[DisplayFormat(DataFormatString = "{0:P2}", ApplyFormatInEditMode = true)]
public decimal MyValueASPercentage { get; set; }
现在,您的网页上的值为0.27将显示为27%。希望有所帮助