В MVC 3 я не могу получить @ html.displayfor для рендеринга форматированной строки

Я надеюсь, что это довольно простое, хотя после множества густоли, я не смог это разговаривать.

Я работаю на сайте покупок с MVC 3, а также с использованием кодовой структуры объекта. Модель, которую я отправляю, представляет собой список объектов продукта, и каждый из этих объектов включает в себя это свойство:

[Required(ErrorMessage = "This is a required field.")]
[DataType(DataType.Currency)]
[Range(1.00, 500.00, ErrorMessage = "Products can not be free.")]
[DisplayFormat(DataFormatString = "{0:C}")]
[DisplayName("Price")]
public double Price { get; set; }

Я надеялся, что атрибут displayFormat приведет к тому, что следующая строка будет привести к форматированию значения в качестве валюты (элемент Это объект продукта в цикле):

@Html.DisplayFor(modelItem => item.Price)

Но это не применяет форматирование вообще. Пока что единственный способ, которым я смог получить его на работу, - это использовать это вместо этого:

@String.Format("{0:C}", item.Price)

, но если это возможно, я бы предпочел использовать @ html.displayfor, как он предназначен для обработки таких вещей, как нули. Я знаю, что это будет 0 или более. На самом деле с проверкой всегда будет какая-то сумма - но я хочу убедиться, что не более правильный способ сделать это, прежде чем я продолжу.

Любая информация об этом будет наиболее ценится!

Обновление

Дарин ответил и отметил, что это работает, что заставило меня вернуться на то, что я действительно отправлял по мнению. Я понял, что, хотя у меня есть класс под названием ProductModel, который имеет атрибут DisplayFormat, я фактически возвращал другую модель, которая содержит список продуктов. Это называется ProductListmodel, и я понял, что он вернул список класса данных продукта - не класс ProductModel!

Итак, в конце концов это было на самом деле очень просто. Просто желаю, чтобы я не потратил наполовину вечера на этом. Спасибо, что вдохновлял меня вернуться и проверить правильно, Дарин!

12
задан Matt Winward 6 September 2011 в 05:52
поделиться