在ASP.NET MVC3中,将货币和百分比值绑定到模型的最简单方法是什么?

时间:2011-02-10 04:01:48

标签: asp.net-mvc asp.net-mvc-3

  

可能重复:
  How to filter form data with custom model binder

下面的简单模型在编辑/创建视图中根据需要预先填充字段(即$ 250,000和75%)。但是,在回发到控制器时,属性无法正确绑定。

让MVC将这些字符串从人类友好格式转换回decimal和float属性值的最简单方法是什么?我可以在我的属性上使用某种ValueConverter属性吗?或者我是否必须实施一个完整的ModelBinder?

public class MyModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C0}")]
    [Required]
    [Display(Name = "My Money")]
    public decimal Moo { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0%}")]
    [Required]
    [Display(Name = "Percentage of Awesomeness")]
    public float PercentAwesome { get; set; }
}

我错误地认为MVC Runtime可以通过使用DisplayFormat属性中的值自动处理它。

提前感谢MVC新手!

1 个答案:

答案 0 :(得分:2)

你需要一个自定义模型绑定器来做你想要的。有关指导,请参阅this问题。