2016-01-16 3 views
2

Поскольку MVC 5.1 можно добавить HTML атрибуты шаблонов редактора следующим образом:EditorFor htmlAttributes не работает для типа BOOL (MVC 5.2)

@Html.EditorFor(m => m.Foo, new { htmlAttributes = new { id = "fooId", @class="fooClass" } }) 

Если свойство Foo имеет тип string, он будет генерировать вход правильно разметка, включая пользовательские атрибуты.

Но если свойство Foo имеет тип bool (или bool?) атрибуты игнорируются ...

Я пропускаю что-то здесь ?. Может быть, эта функция по-прежнему не поддерживается для шаблонов, которые генерируют «выбор» разметки?

+0

Вы уверены? Для меня все работает нормально. Все атрибуты включены для свойств 'bool'. –

+0

Да !. Если я просто изменил тип свойства на 'string', атрибуты не будут проигнорированы. – Javier

ответ

0

Я знаю, что этот вопрос задавали некоторое время назад, но сейчас я столкнулся с тем же вопросом. Оказывается, другой разработчик создал собственный шаблон редактора для Boolean в нашем решении, чтобы иметь возможность настраивать текст раскрывающегося списка. Ваш код должен работать для редакторов из коробки, но он не работает автоматически для пользовательских редакторов ... вы должны реализовать его самостоятельно.

Если это ваша проблема, вам нужно изменить шаблон пользовательского редактора, чтобы извлечь htmlAttributes из ViewData и передать их вместе с базовым DropDownListFor (или любым вспомогательным помощником, который вы используете). Вот что мой Редактор пользовательских шаблонов выглядит сейчас:

@model bool? 
@using System.Web.Mvc; 
@{ 
    var htmlAttributes = ViewData["htmlAttributes"] ?? new { }; 

    @Html.DropDownListFor(model => model, 
     new List<SelectListItem>(3) { 
     new SelectListItem { Text = "Unknown", Value = "" }, 
     new SelectListItem { Text = "Yes", Value = "true", Selected = Model.HasValue && Model.Value }, 
     new SelectListItem { Text = "No", Value = "false", Selected = Model.HasValue && !Model.Value } 
    }, htmlAttributes) 
} 

Кредит для этого объяснения & решение идет в https://cpratt.co/html-editorfor-and-htmlattributes

 Смежные вопросы

  • Нет связанных вопросов^_^