powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewModel динамическая
9 сообщений из 9, страница 1 из 1
ViewModel динамическая
    #39071057
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас переписывается приложение с web forms на MVC5. есть Документ, набор полей которого хранится в БД, и этот набор меняется, довольно часто. отображается Документ сейчас как репитер полей. на все эти поля по отдельности, и, в том числе и в общем (контрольные суммы) наложена бизнес-логика.

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

спасибо.
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071058
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawнабор полей которого хранится в БД

как записи
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071158
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал просто - запись имеет какой-то признак - и от этого отправляется в спецовый шаблон.

Прикольней их потом с формы "собирать"..
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071194
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и хочу спросить гуру.
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071414
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawСейчас переписывается приложение с web forms на MVC5. есть Документ, набор полей которого хранится в БД, и этот набор меняется, довольно часто. отображается Документ сейчас как репитер полей. на все эти поля по отдельности, и, в том числе и в общем (контрольные суммы) наложена бизнес-логика.

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

спасибо.

для примера, архитектура классов:

Код: c#
1.
2.
3.
4.
class DocumentPropertyViewModelBase
class DocumentPropertyConcrete1ViewModel : DocumentPropertyViewModelBase
class DocumentPropertyConcrete2ViewModel : DocumentPropertyViewModelBase
class DocumentPropertyConcrete3ViewModel : DocumentPropertyConcrete2ViewModel



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

сам документ (его вью-модель):

Код: c#
1.
2.
3.
4.
5.
6.
class DocumentViewModel
{
   ....
   public IReadOnlyCollection<DocumentPropertyViewModelBase> Properties {get; set;}
   ....
}



соответственно, во вью редактирования документа, блок редактирования свойств может выглядеть так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@model DocumentViewModel

...

<h3>Свойства документа</h3>

@foreach(var item in Model.Properties)
{
    <div class="document-property>
          <div class="property-label">@item.Caption</div>
          <div class="property-editor">@Html.EditorFor(x => item)</div>
    </div>
}

...



в папке /Views/Document создаётся папка EditorTemplates, где размещаются шаблоны редакторв для каждого типа проперти, например, DocumentPropertyConcrete3ViewModel.cshtml

ну а дальше, всё зависит уже от конкретных задач и требований

это общий принцип, как это предлагается делать по канонам ASP.NET MVC, если не хочешь изобретать что-то своё поверх этой архитектуры.
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071489
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
хм а ты не забыл ему указать что билдер потом надо модифицировать?) чтоб получать конкретный экземпляр вместо базового, если там к примеру документ на редактирование давать, или я чего то не знаю?)
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071592
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuhVostt,
хм а ты не забыл ему указать что билдер потом надо модифицировать?) чтоб получать конкретный экземпляр вместо базового, если там к примеру документ на редактирование давать, или я чего то не знаю?)

биндер (а не билдер), ты хотел сказать? ну может и надо, а может и нет, конкретная реализация важна при отправке, а на вход можно получать только Value, но опять же, зависит от того какие свойства документа у ТС, этого я не знаю. описан общий принцип.

и да, правильный биндер при необходимости и желании написать не проблема, только дискриминатор будет нужен для типа проперти.
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071679
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, да биндер, опечатался видимо. ты прописал
Код: c#
1.
<div class="property-editor">@Html.EditorFor(x => item)</div>

и указал EditorTemplates, что подразумевает редактирование, я только дополнил, если тс пойдет в эту сторону)
...
Рейтинг: 0 / 0
ViewModel динамическая
    #39071837
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuhVostt, да биндер, опечатался видимо. ты прописал
Код: c#
1.
<div class="property-editor">@Html.EditorFor(x => item)</div>


и указал EditorTemplates, что подразумевает редактирование, я только дополнил, если тс пойдет в эту сторону)

всё правильно, про биндер я забыл сказать
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewModel динамическая
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]