Как я могу установить MAXLENGTH для полей ввода автоматически? - PullRequest
3 голосов
/ 17 марта 2010

Я использую ASP.NET MVC RC2.У меня есть набор классов, которые были автоматически сгенерированы "классы Linq-to-SQL", где каждый класс моделирует таблицу в моей базе данных.У меня есть некоторые «редактируемые» представления по умолчанию, которые используют вспомогательное расширение neat-o Html.TextBoxFor для визуализации полей ввода HTML для столбцов в таблице.

Однако я заметил, что не указан атрибут MAXLENGTHв сгенерированном HTML.Быстрый Google показывает, что вы можете добавить явные атрибуты, используя TextBoxFor и т. Д., Но это будет означать, что мне нужно жестко кодировать значения (и я должен помнить, чтобы сделать это для каждого ввода).

Этокажется довольно бедным, учитывая, что все автоматически генерировалось непосредственно из БД, поэтому размер столбцов известен.(Хотя, если честно, веб-компоненты должны работать с любыми объектами модели, а не только с объектами Linq-to-SQL).

Есть ли хороший способ заставить это сделать правильные вещи

Ответы [ 3 ]

3 голосов
/ 18 марта 2010

Я бы не стал беспокоиться о атрибуте максимальной длины в ваших HTML-элементах, это ложное чувство безопасности.

Я бы добавил атрибут StringLength к полям, для которых требуется проверка максимальной длины. Это автоматически предоставит вам проверку длины на стороне сервера, а также проверку длины на стороне клиента, если вы захотите.

Если вам требуется дополнительная информация о новом использовании ASP.NET MVC 2 атрибутов проверки аннотаций данных, прочитайте это сообщение в блоге Скотта Гу .

Также вам может понадобиться использовать классы собеседников для ваших сгенерированных классов Linq to SQL ... в этом случае вы можете прочитать сообщение в блоге , о котором я писал .

HTHS
Charles

1 голос
/ 02 мая 2019

При использовании MVC / jQuery вы можете просто повторно применить data-val-maxlength-max как maxlength в JavaScript / TypeScript:

$container.find('[data-val-maxlength-max]')
    .each((index, item) => {
        var $this = $(item);
        var maxLength = $this.attr('data-val-maxlength-max');
        $this.attr('maxlength', maxLength);
    });
0 голосов
/ 14 декабря 2011

Чарльз, у меня была та же проблема, и я решил ее сегодня утром. Вот сообщение в блоге с исходным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...