Перезаписать TextBoxFor Helper в ASP.NET MVC с помощью HtmlAttributes

Пытаюсь использовать пользовательский TextBoxFor в ASP.NET MVC 3 для изменения некоторых существующих атрибутов.

Во время рендеринга

@Html.MYTextBoxFor(model => model.FirstName, new { @class = "textfield", @tabindex = "1", @maxlength = "50", @size = "30" })

Но он игнорирует htmlAttributes(tabindex,maxlength,size).

public static MvcHtmlString MYTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression, object htmlAttributes)
{
    string elementName = ExpressionHelper.GetExpressionText(expression);               

    MvcHtmlString normal = html.TextBoxFor(expression);
    if (normal != null)
    {
        string newValidator = normal.ToHtmlString();                
        newValidator = newValidator.Replace("data-val-required", "databvalidatormsg");
        return MvcHtmlString.Create(newValidator);
    }
    return null;
}

1 ответ

Ну, вы не используете свой htmlAttributes arg где-нибудь в функции.

Разве тебе не нужно что-то вроде...

MvcHtmlString normal = html.TextBoxFor(expression, htmlAttributes);

Кроме того, вам не нужно @ символ перед символами tabindex, maxlength и size.

Другие вопросы по тегам