2014-11-08 35 views
0

我有一个包含这样MVC4 DROPDOWNLIST货币格式

public class InsuranceCoverPrice 
{ 
    public Int32 ID { get; set; } 

    [Required] 
    [UIHint("Currency")] 
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")] 
    [DataType(DataType.Currency)] 
    public Decimal Price { get; set; } 

    public Int32 InsuranceCoverId { get; set; } 

    public virtual InsuranceCover InsuranceCover { get; set; } 
} 

这个类是父类InsuranceCover的子项的任何类mvc4应用程序(.net4.5)和实体模型。 还显示insuranceCover类项目的剃刀看法是这样的:

@foreach (var k in Model.insuranceCovers) 
    { 

...等物品....

@Html.DropDownList("minPriceDrop",new SelectList(k.InsuranceCoverPrice,"Price","Price")) 
    } 

我怎么可以显示在下拉列表价格的项目的文本像en-us文化(0.00美元)?

+0

你真的应该使用视图模型来表示你想要什么显示/编辑。更重要的是,以这种方式使用'@ foreach'和'@ Html.DropDownList'将会创建重复的'id'属性(无效的html)和重复的'name'属性,所以这些值在回发时不会绑定到你的模型 – 2014-11-09 23:46:29

回答

0

做一个只读属性,你的模型:

public string PriceFormatted 
{ 
    get { return string.Format("{0:C2}", Price); } 
} 

然后引用您的SelectList创建该属性:

@Html.DropDownList("minPriceDrop",new SelectList(k.InsuranceCoverPrice,"Price","PriceFormatted"))