2013-03-22 3 views
6

Я знаю, что это обсуждалось много раз.Html (5) атрибуты для редактора

Я хотел бы использовать

@Html.EditorFor(u => u.Password, new { required = "required" }) 

Unfortunatley это невозможно по умолчанию как EditorFor перезаписывает атрибуты Html.

Я не хочу использовать TextBoxFor, потому что мне нужно, чтобы значение форматировалось в соответствии с атрибутом DisplayFormat.

Есть ли решение для этого?

+0

Что вы подразумеваете под «перезаписыванием атрибутов HTML»? –

+1

@ mosquito: Каков ваш вопрос на самом деле? Если вы хотите получить требуемую проверку поля, вы можете установить ее в модели. – Sharun

ответ

10

Вы можете написать собственный шаблон редактор для строкового типа (~/Views/Shared/EditorTemplates/string.cshtml):

@Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue, 
    ViewData 
) 

, а затем:

@Html.EditorFor(u => u.Password, new { required = "required" }) 

будет работать, как ожидалось.

+0

Итак, что означал OP, «перезаписывая атрибуты HTML»? –

+2

@MichaelPerrenoud, почему ты спрашиваешь меня? Спросите OP. Я предполагаю, что он имел в виду, что параметр 'new {required =" required "}', который он передавал в шаблон редактора, не имел никакого эффекта, что совершенно нормально, потому что шаблон редактора по умолчанию, встроенный в ASP.NET MVC, не использует их. Вот почему я предложил создать собственный шаблон редактора, который будет использовать эти параметры. –

+0

Отлично, спасибо за разъяснение! –

-1

Не уверен, что это вариант, но вы можете просто поставить [Требуется] в качестве декоратора свойств на Модели.

+2

Нет, это не влияет на атрибут html, который я хочу. – mosquito87

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