Как расширить / переопределить mvc html.LabelFor - PullRequest
3 голосов
/ 20 июля 2011

У меня есть перегрузка для LabelFor, которую можно использовать следующим образом:

@Html.LabelFor(i => i.MyProperty)

Как я могу заставить компилятор использовать мою перегрузку вместо той, которая предоставляется MVC ootb?

В основном это просто для того, чтобы у меня могли быть обязательные поля, чтобы выплевывать метку с * суффиксом

Ответы [ 2 ]

4 голосов
/ 20 июля 2011

Для этой перегрузки вы не можете (разумно).

Просто назовите метод Label() или MyLabelFor() и т. Д.

1 голос
/ 20 июля 2011

LabelFor принимает параметр Expression<Func<TModel, TValue>>. Я думаю, вы могли бы сделать что-то вроде:

public static string LabelFor<TModel, string>(
    this HtmlHelper<TModel> htmLHelper, 
    Expression<Func<TModel, string>> expression) {
    // etc

... чтобы ваш метод расширения был перегружен более определенным , но это не значит, что вы должны , как вам потребуется для all типы недвижимости.

Вместо того, чтобы смешивать имена методов со стандартными методами расширения HtmlHelper, назовите их по-другому, например,

@Html.MyLabelFor(m => m.MyProperty);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...