Как добавить пользовательский атрибут HTML или класс CSS с помощью атрибута аннотации данных .NET? - PullRequest
4 голосов
/ 20 апреля 2011

Я использую ASP.NET MVC 3 RTM.Можно ли изменить HTML, отображаемый из модели представления, с помощью атрибута?

Пример:

public class Product
{
    [AddHtmlAttribute(Name = "disabled", Value = "disabled")]
    public string Name { get; set; }
}

Я хочу, чтобы атрибут мог изменять отображаемый HTML, это свойствоЯ знаю, что это не может быть сделано с одним атрибутом.Я, вероятно, должен подключиться к системе, реализовав интерфейс, но где мне искать?

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

Я думаю, мне просто нужен указатель на то, куда я должен смотреть, или на какой интерфейс я должен смотреть.

Большое спасибо.

Обновление: Я использую стандартный помощник HTML Html.EditorFor(model => model.Name) для своих полей и не переопределяю никакие шаблоны редактора.Я бы действительно предпочел, чтобы мне не приходилось менять или переопределять шаблоны по умолчанию.

1 Ответ

5 голосов
/ 20 апреля 2011

Вы можете оформить следующую запись в блоге , в которой показано, как этого добиться, написав собственный атрибут DataAnnotationsModelMetadataProvider и переопределив шаблоны по умолчанию.

...