简体   繁体   English

ASP MVC2-动态字段布局

[英]ASP MVC2 - Dynamic Field Layout

I'm new to MVC and ADO.net Entity Framework. 我是MVC和ADO.net实体框架的新手。 Instead of having to create an edit/display for each entity, I'd like to have the controller base class generate the view and validation code based off metadata stored in a table - something along those lines. 无需为每个实体创建编辑/显示,我想让控制器基类根据存储在表中的元数据生成视图和验证代码-类似于这些内容。

I would imagine something like this has already been done, or there are good reasons for not doing it. 我想这样的事情已经完成了,或者有充分的理由不这样做。 Any insight or suggestions are appreciated. 任何见解或建议,表示赞赏。

The display can be done using Html.DisplayForModel() or Html.EditorForModel(). 显示可以使用Html.DisplayForModel()或Html.EditorForModel()完成。 This generates a view for the entity to render, but it probably won't look the way you like. 这将为实体生成一个视图以进行渲染,但外观可能看起来并不理想。 I think it might inject validators, but that is based of data annotations, not the LINQ to Entity DB metadata. 我认为它可能会注入验证器,但这是基于数据注释,而不是LINQ to Entity DB元数据。

As far as I know, I don't know of anything that automatically sucks in L2E model metadata... I was thinking of writing something myself too, as it would be very convenient to have. 据我所知,我不知道会自动吸收L2E模型元数据的任何东西……我也在想自己编写一些东西,因为这样做很方便。

HTH. HTH。

I don't like to answer my own question, but I found a library - [ASP.Net Dynamic Forms][1] - which was pretty much exactly what I needed. 我不想回答自己的问题,但是我找到了一个库-[ASP.Net动态表单] [1]-几乎正是我所需要的。

It's pretty well written, isn't too complicated and easily extensible. 它写得很好,不是太复杂,也不容易扩展。 The source author leaves the implementation very open ended, so far, I've been able to easily create a sql layer where the form settings reside, code looks something like this - 源代码作者将实现留给开放式的开发,到目前为止,我已经能够轻松地在表单设置所在的地方创建一个sql层,代码看起来像这样-

` string controllerName = controllerType.ToString(); `字符串controllerName = controllerType.ToString();

        Form form = new Form();
        List<FormSetting> settings = new DataEntities().FormSettings.Where((c => c.ControllerName == controllerName)).ToList();

        foreach (FormSetting setting in settings)
        {
            Field fieldToAdd = CreateField(setting);
            form.Fields.Add(fieldToAdd);
        }`

[1]: http://mvcdynamicforms.codeplex.com/ . [1]: http : //mvcdynamicforms.codeplex.com/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM