Re-Scaffold представления после изменения их модели

Я использую Visual Studio 2013 и ASP.Net MVC 5. Я создал кучу представлений для своих моделей, а затем изменил их. Я хочу запустить скаффолдинг на некоторых моделях и автоматически создать некоторые представления, а затем изменить автоматически сгенерированные представления. Есть ли другой способ, кроме переименования некоторых файлов или создания другого решения и копирования материала?


person Alireza Noori    schedule 12.12.2013    source источник


Ответы (3)


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

1) Сохраните существующий проект/решение для контроля версий, как это рекомендуется.

2) При повторном создании шаблонов используйте другое имя контроллера, которое создаст класс контроллера и его 5 сопутствующих представлений, но не перезапишет ничего существующего, сохранив всю вашу существующую работу.

3) Извлеките соответствующие методы из повторно созданного контроллера. Привязки для создания/редактирования, скорее всего, изменятся при изменении модели, поэтому зафиксируйте их. Затем удалите повторно созданный контроллер.

4) Это оставляет представления на месте для копирования и вставки соответствующего кода пользовательского интерфейса для любых новых или переопределенных свойств модели. После того, как весь необходимый код будет скопирован, просто удалите повторно сформированные представления.

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

person Alan    schedule 01.04.2020

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

Подробности: щелкните правой кнопкой мыши папку вашего проекта или контроллера,

Добавить ... Новый элемент лесов,

Контроллер MVC 5 с представлениями с использованием Entity Framework,

Добавлять

Выберите свою модель и класс данных,

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

person Greg Carrier    schedule 24.09.2014

Я использую контроль версий — GIT, чтобы делать это быстро и безопасно. Я использую пользовательский интерфейс Git Extensions (http://code.google.com/p/gitextensions/) для git.

Зафиксируйте свой код перед повторным созданием шаблонов. Затем повторно замаскируйте представления и перейдите к подготовке (кнопка «Зафиксировать» в Git Extensions). Он показывает все изменения, которые сделал re-scaffold, и раскрашивает новые и удаленные строки кода. Оттуда вы можете создавать только выбранные новые строки, которые были изменены в контроллере. После подготовки выбранных строк сбросьте остальные неустановленные изменения.

Вот оно! Ваш уже измененный код с новыми частями каркаса. Внесите необходимые правки и тестирование и зафиксируйте.

person insp    schedule 17.12.2013
comment
Хотя это очень хороший трюк, я искал какую-нибудь встроенную функцию или специальный инструмент для этой цели. Я приму этот ответ, если его нет - person Alireza Noori; 18.12.2013
comment
Означает ли это, что нет ничего, что позволяло бы разработчикам повторно формировать свои представления? Это оказалось одной из первых вещей, которые я ожидал сделать. - person nu everest; 23.04.2014
comment
Для всех остальных @nueverest вы повторно заменяете леса. Однако если вы вносите изменения в шаблон по умолчанию, вам придется применить эти изменения повторно. Я думаю, что nueverest надеялся на возможность изменить строительные леса, а не полностью перезаписать существующие. Я бы тоже хотел, если у кого-то есть дополнительная информация, пожалуйста, поделитесь. - person Sigex; 13.05.2018