2010-05-30 3 views
1

Я новичок в MVC и ADO.net Entity Framework. Вместо того, чтобы создавать редактирование/отображение для каждого объекта, я хотел бы, чтобы базовый класс контроллера генерировал код представления и проверки, основанный на метаданных, хранящихся в таблице, - что-то вдоль этих строк.ASP MVC2 - Динамический макет поля

Я бы предположил, что что-то подобное уже сделано, или есть веские причины не делать этого. Любые идеи или предложения приветствуются.

ответ

0

Мне не нравится отвечать на свой вопрос, но я нашел библиотеку - [ASP.Net Dynamic Forms] [1] - это было в точности то, что мне было нужно.

Это хорошо написано, не слишком сложно и легко расширяемо. Исходный автор оставляет реализацию очень открытой, до сих пор мне удалось легко создать слой sql, где находятся параметры формы, код выглядит примерно так:

`string 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

Дисплей может быть выполнен с использованием Html.DisplayForModel() или Html.EditorForModel(). Это создает представление для объекта для рендеринга, но, вероятно, он не будет выглядеть так, как вам нравится. Я думаю, что он может вводить валидаторы, но это основано на аннотациях данных, а не на метаданных LINQ to Entity DB.

Насколько я знаю, я ничего не знаю о том, что автоматически всасывает метаданные модели L2E ... Я тоже подумывал написать что-то, что было бы очень удобно.

HTH.

Смежные вопросы