从数据库表在运行时生成视图

时间:2012-12-07 00:00:46

标签: c# asp.net-mvc runtime multiviews

我有一个关于如何使用MVC框架生成Multiviews(视图控件)的技术问题,其中视图是动态生成的(从DB获取详细信息)。

根据asp.net,视图(控件)的生成需要放在页面的PreInit或Load事件中。需要一些关于如何继续的技术指导。

或者再次使用是一个好习惯,问题是如何。任何其他替代解决方案也欢迎..

1 个答案:

答案 0 :(得分:0)

你应该尝试这样的事情:

Generating ASP.NET MVC View Controls According to XML Configurations

数据源是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>

请注意,以这种方式生成视图时,您不会获得太多“形状”;它对配置表单等内容非常有用。虽然您可以将数据库放在数据库中,就像页面上控件的位置一样,但是当您完成所有这些操作时,您可能最好只进行常规视图。