Я пытаюсь создать собственный помощник для редактора. Я хочу взять длину строк из моделей и добавить это в атрибуты html.MVC EditorFor Custom Helper
У меня есть следующее до сих пор, но это не применяет новые добавленные атрибуты.
public static IHtmlString MyEditorFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression, object ViewData, bool disabled = false, bool visible = true)
{
var member = expression.Body as MemberExpression;
var stringLength = member.Member.GetCustomAttributes(typeof(StringLengthAttribute), false).FirstOrDefault() as StringLengthAttribute;
RouteValueDictionary viewData = HtmlHelper.AnonymousObjectToHtmlAttributes(ViewData);
RouteValueDictionary htmlAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(viewData["htmlAttributes"]);
if (stringLength != null)
{
htmlAttributes.Add("maxlength", stringLength.MaximumLength);
}
return htmlHelper.EditorFor(expression, ViewData);
}
'возвращение htmlHelper.EditorFor (выражение, ViewData) 'не добавляет никаких атрибутов. Его просто использует оригинальный атрибут «ViewData», который вы передали методу –
Как его изменить и вернуть атрибуты? Я не могу вернуть новый объект viewData, поскольку он является другим типом. – user3208483