ASP.NET MVC3 EditorFor в форме для модели с массивом фиксированной длины - PullRequest
2 голосов
/ 09 января 2012

Каков самый чистый, самый ASP.NET MVC3 способ, из-за отсутствия лучшего термина, моделировать коллекцию конечного числа и отображать веб-форму с помощью Razor?

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

Существует ли еще какой-нибудь автоматический способ создания модели представления, которая работает в сочетании с представлением Razor, чтобы точно указать, сколько элементов я хочу в своей коллекции и, таким образом, она может автоматически отображать нужное количество элементов формы?

Ответы [ 3 ]

1 голос
/ 09 января 2012

Если мы говорим о небольшом количестве простых типов данных, то на самом деле (хотя это и не тот ответ, который большинство хотят услышать), вы должны иметь по одному полю в модели для каждого экземпляра элемента.Таким образом, для 5 зарплат в вашей модели вы бы использовали salary1, salary2 и т. Д.

Если вы хотите немного абстрагироваться от этого, а также сделать его более устойчивым к изменению / обработке больших чисел и т. Д.Можно добавить некоторые пользовательские метаданные в поле, указывающее количество значений, которые вы хотите.Затем вам понадобится либо помощник, либо пользовательский шаблон (или комбинация), чтобы взять метаданные и отобразить правильное количество полей ввода (с правильными именами, идентификаторами и т. Д.).

1 голос
/ 09 января 2012

Я действительно не понимаю, в чем ваша проблема. Зачем вам это нужно ограничивать? Вы просто помещаете сколько угодно записей в список, и именно столько он будет отображать. Если вам нужно всего лишь 5 записей в списке, стараетесь ли вы убедиться, что список может содержать только 5 элементов? Нет. То же самое относится и к вашему мнению.

1 голос
/ 09 января 2012

Использование списка в качестве модели для вашего представления является рекомендуемым способом сделать это. Это просто, чисто и эффективно.

Вы можете создать шаблоны EditorFor, которые отображают списки, но они по сути будут такими же, как представление с некоторыми дополнительными издержками из-за системы шаблонов.

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