Извлечение значения для использования на элементе метки? - PullRequest
0 голосов
/ 07 февраля 2011

Привет

Метка имеет атрибут for, который указывает на редактор, например:

<label for="ModelViewAd_Title">Titel</label>

Я создаю собственный помощник для создания метки, и этот метод выглядит следующим образом:

public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression, Boolean showToolTip)

Какой самый простой способ извлечь это для значения? Или я должен вручную построить для значения?

BestRegards

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

Эта статья решила мою проблему:

http://weblogs.asp.net/imranbaloch/archive/2010/07/03/asp-net-mvc-labelfor-helper-with-htmlattributes.aspx

Подробно:

string htmlFieldName = ExpressionHelper.GetExpressionText(expression);
html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName)
0 голосов
/ 07 февраля 2011

Как это:

public static MvcHtmlString LabelFor<TModel, TValue>(
    this HtmlHelper<TModel> self, 
    Expression<Func<TModel, TValue>> expression, 
    Boolean showToolTip
)
{
    var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
    var id = self.ViewData.TemplateInfo.GetFullHtmlFieldId(metadata.PropertyName);
    // do something with the id
    ...
}
...