Как избежать дублирования кода, если несколько страниц выглядят практически одинаково? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть пара страниц, например, Product, которые выглядят почти одинаково.У меня есть Product/Add и Product/Modify/{id} страницы, где одна представляет собой пустую форму для добавления новой Product, а вторая поставляется уже заполненной данными для текущего продукта и может быть обновлена ​​дополнительной информацией.Поскольку Razor Pages разделяет это на Add и Modify PageModels, у меня есть разные cshtml представления для каждого из них.

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

Есть ли другой способ создания этихстраницы без дублирования?

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете создать одну страницу для создания и редактирования, отправив новый объект модели Продукта (без данных в атрибуте id) и созданный объект (с данными в атрибуте id) в случае редактирования.А в представлении вы можете выполнять рендеринг на основе отправленного объекта (независимо от того, является он новым или нет).

...