Я работаю над CMS на основе ASP.NET MVC, которая представляет собой довольно экстремальный случай. Система должна позволять пользователю добавлять пользовательские типы контента на основе различных полей, и для каждого поля можно добавлять параметры и проверки. Дело в том, что все хранится в сложной БД и извлекается во время выполнения с помощью LINQ.
Я довольно свеж с ASP> NET MVC, поэтому на ум пришла следующая дилемма
Как мне сделать представление создания контента, чтобы помощники форм не были предопределены в коде просмотра, а загружались в зависимости от типа поля? Нужно ли создавать фабричный класс, который проверяет значение свойства type поля, а затем возвращает вспомогательный метод на основе этого, или есть лучший способ сделать это. Этот вариант мне кажется довольно жестким, потому что каждый раз, когда я делаю изменения в таблице типов полей, мне придется обязательно проверять этот новый тип.
public class CType {
string Name; //e.g Post Article etc
List<ContentData> data ;
...
}
public class ContentData {
string Data; // Basically this is the data stored for each field
FieldInstance fieldInstance;
...
}
public class FieldInstance {
string Title; // e.g Title Body etc.
FieldType Type ; // e.g textbox textarea image checkbox etc
...
}
public class FieldType {
string Type; // e.g textbox textarea image checkbox etc
...
}