В моей базе данных я настроил поля для продукта:
Вот как выглядит объект:
ProductField
Идентификатор (ПК)
ProductId (FK)
Метка (используется в качестве метки поля)
Тип (Text, TextArea)
Когда страница загружается, у меня есть Модель страницы для моей сущности продукта, которая имеет свойство навигации, которое называется Поля типа ProductField. В моем синтаксисе бритвы я делаю следующее:
<form method="post">
@{
int i = 0;
if (Model.Product.Fields.Count > 0)
{
@foreach (var field in Model.Product.Fields)
{
if (field.Type == "Text")
{
<input id="txt_@i" type="text">
}
else if (field.Type == "Signature")
{
<textarea id="txtArea_@i"></textarea>
}
i++;
}
}
}
</form>
Часть, с которой у меня возникают проблемы, - это создание ViewModel, которую можно должным образом разместить, чтобы я мог получить доступ к значению каждого поля и сохранить его в базе данных.
В базе данных есть еще одна таблица для хранения значения для каждого поля:
ProductFieldValue
ProductFieldId (FK)
UserId (идентификатор пользователя, заполняющего форму)
Значение (значение для этого поля)
Как правильно моделировать привязку в подобном сценарии, используя Razor Pages или MVC?