Запутался насчет Html.AttributesFor (m => m.Name)) - PullRequest
0 голосов
/ 24 ноября 2011

Я пытаюсь учиться на чужом коде. Я видел следующее:

@Html.TextBoxFor(m => m.Name, Html.AttributesFor(m => m.Name))

Может кто-нибудь объяснить мне, как работает Html.AttributesFor? Что это за атрибуты и где я могу их настроить.

Обновление:

Я нашел следующее скрытое в коде:

  public static IDictionary<string, object> AttributesFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
        {
            var attributes = new RouteValueDictionary {{"class", ""}};

            WhenEncountering<StringLengthAttribute>(expression, att => attributes["maxlength"] = att.MaximumLength);
            WhenEncountering<HintSizeAttribute>(expression, att =>
                {
                    attributes["class"] += att.Size.ToString().ToLowerInvariant() + " ";
                });

            attributes["class"] = attributes["class"].ToString().Trim();
            return attributes;
        }

1 Ответ

1 голос
/ 24 ноября 2011

TextBoxFor Помощник имеет три перегрузки, и никто не указывает синтаксис, который вы опубликовали, возможно, это пользовательский помощник, который кто-то написал для удобства.Второй аргумент Html.TextBoxFor принимает html objectHtmlAttributes, который вы можете указать как

@Html.TextBoxFor(x=>x.name,new { @class="classname", @rel="nofollow" })

или IDictionat<string,object>htmlAttributes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...