2010-11-13 2 views
3

Есть ли способ перестроить строго типизированный вид, когда класс модели добавил новые поля?mvc rebuild строго типизированный вид

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

Когда я начинаю настраивать его по своему вкусу, я потеряю все изменения, и мне было интересно, есть ли хороший способ справиться с этим?

Благодаря

+1

Не уверен, что я буду следовать за тобой. Когда вы обновляете свою модель, вы просто обновляете свое представление, чтобы использовать любые новые поля/свойства. Ваши взгляды не привязаны к какой-либо конкретной версии ваших моделей. – Phil

ответ

5

ASP.NET MVC предлагает два типа строительных лесов, каждый из которых обладает своими преимуществами:

Первым видом строительных лесов является время разработки строительных лесов, которая осуществляется через Add View шаблонов диалога и T4. Преимущество этого заключается в том, что код полностью создан, и вы можете полностью его настроить. Недостаток заключается в том, что если вы измените свою модель, вам необходимо восстановить свой вид (удалив его и добавив обратно новый).

Второй вид лесов - это леса, которые выполняются с помощью методов Html.EditorFor() и Html.DisplayFor(), на ваш взгляд. Преимущество этого заключается в том, что если ваша модель изменится, то строительные леса будут автоматически генерироваться во время выполнения. Недостатком является то, что вы не можете напрямую настроить рендеринг. Вы, однако, можете, чтобы дать этим лесам много советов, используя атрибуты DataAnnotations, такие как [DisplayText], [UIHint] и т. Д., Поэтому он довольно гибкий, но он не так гибкий, как возможность 100% -ной настройки рендеринга.

Для настройки рендеринга строительных лесов (шаблонов редакторов и шаблонов отображения) вы можете найти дополнительную информацию по Brad Wilson's blog series.

+0

, когда вы говорите, что заново создаете представление, вы имеете в виду удалить файл и воссоздать его или есть другой способ сгенерировать? Cheers – foz1284

+0

@foz Я хотел удалить и воссоздать. Я обновил свой ответ, чтобы отразить это. – Eilon

+1

Вы также можете создавать шаблоны для runtime-scafolding! Учебник по этому вопросу здесь: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html – Alxandr

1

Вы можете вручную добавить код в целях отражения любых изменений в модели. По умолчанию scafolding - это просто дать вам что-то.

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

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