Генерация представлений во время выполнения из таблицы базы данных

У меня есть технический вопрос о том, как я могу генерировать 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>

Обратите внимание, что вы не получаете много "формы", когда вы генерируете представление таким образом; это в основном полезно для таких вещей, как формы конфигурации. Хотя вы можете поместить метаданные в базу данных, например, расположение элементов управления на странице, к тому времени, когда вы все это сделаете, вам, вероятно, будет лучше просто создавать обычные представления.

Другие вопросы по тегам