2016-11-04 6 views
0

Я попытался как это:DataAnnotations: не DisplayFormat чествовали

[Display(Name = "Contract Value")] 
[DisplayFormat(DataFormatString = "{0.##}")] 
public decimal ContractValue { get; set; } 

И это:

[Display(Name = "Contract Value")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0.##}")] 
public decimal ContractValue { get; set; } 

Вид:

@Html.LabelFor(x => contractInfoModel.ContractValue) 
@Html.TextBoxFor(x => contractInfoModel.ContractValue, new { maxlength = "100" }) 

Если я делаю это, это работает. Но я не хочу этого делать:

<input type="text" name="@Html.NameFor(x=>contractInfoModel.ContractValue)" id="@Html.IdFor(x=>contractInfoModel.ContractValue)" value="@Model.ContractInfoM.ContractValue.ToString("0.##")" class="numeric" maxlength="10" /> 

Дисплейное имя отлично работает. Но он по-прежнему показывает 4 знака после запятой. Что я делаю не так?

Спасибо!

+0

Попробуйте заменить хэш-метки нулями. Я не уверен, что это работает, но попробуй. –

+0

Нет! Стоит сделать снимок, но нет –

+0

Затем попробуйте: http://stackoverflow.com/questions/20848969/what-is-the-proper-data-annotation-to-format-my-decimal-property –

ответ

0

Нашел:

По дизайну DisplayFormat не оплачен в TextBoxFor. Таким образом, вместо этого:

@Html.TextBoxFor(x => contractInfoModel.ContractValue, new { maxlength = "10" }) 

Я сделал это:

@Html.EditorFor(x => contractInfoModel.ContractValue, new { maxlength = "10" }) 

И он прекрасно работает.

+1

Если вы хотите использовать 'TextBoxFor()' its '@ Html.TextBoxFor (x => contractInfoModel.ContractValue, "{0. ##}", new {maxlength = "10"}) ' –

Смежные вопросы