Генерация представлений во время выполнения из таблицы базы данных
У меня есть технический вопрос о том, как я могу генерировать Multiviews (управление представлениями), используя инфраструктуру MVC, где представления генерируются динамически (получить подробности из БД).
Согласно asp.net, генерация представлений (контроль) должна быть размещена в событиях PreInit или Load страницы. Нужно какое-то техническое руководство о том, как идти вперед.
Или это хорошая практика, чтобы снова использовать вопрос, как. Любое другое альтернативное решение также приветствуется..
1 ответ
Вы, вероятно, должны попробовать что-то вроде этого:
Генерация ASP.NET MVC View Controls в соответствии с конфигурациями XML
Источником данных является XML, но это не имеет значения; Вы должны быть в состоянии адаптировать технику к таблице базы данных, содержащей метаданные представления.
Код "мета-представления" для формы редактора будет выглядеть примерно так:
@model DynamicControlsCreation.ViewModels.DefaultControlsViewModel
<p>
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Controls.Count; i++)
{
<div>
@Html.HiddenFor(x => x.Controls[i].Type)
@Html.HiddenFor(x => x.Controls[i].Name)
@Html.EditorFor(x => x.Controls[i])
</div>
}
<input type="submit" value="Submit" />
}
</p>
Обратите внимание, что вы не получаете много "формы", когда вы генерируете представление таким образом; это в основном полезно для таких вещей, как формы конфигурации. Хотя вы можете поместить метаданные в базу данных, например, расположение элементов управления на странице, к тому времени, когда вы все это сделаете, вам, вероятно, будет лучше просто создавать обычные представления.