Я использую проверенную клиентскую проверку MS в asp.net mvc 2. У рассматриваемой модели есть одно свойство с именем «FirstName».Наш разработчик на стороне клиента действительно хотел бы иметь case-case в id элементов, поэтому вместо использования обычного html-помощника Html.TextBoxFor(m => m.FirstName)
мы выписали html-представление ввода, например: <input type="text" id="firstName" name="firstName" />
.Связыватель модели может правильно связываться и получать правильное значение (я думаю, это не чувствительно к регистру, и это хорошо).Однако, когда мы включаем оценку на стороне клиента и выдаем Html.ValidateFor(m => m.FirstName)
в конце, он все равно генерирует Pascal-регистр в формате свойства (что ожидается).
Я смотрю в исходный код mvc 2обнаруживает, что ValidateFor()
вызывает ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData)
, который, в свою очередь, использует MemberExpression, чтобы получить имя свойства (это случай Паскаля).Мне интересно, есть ли способ обойти это?Конечная цель состоит в том, чтобы иметь идентификатор верблюжьего ящика, являющийся элементами HTML, и при этом все еще должны выполняться проверки на стороне клиента и на сервере.
Любая помощь приветствуется.