私はかなり極端なケースを提示する ASP.NET MVC ベースの CMS に取り組んでいます。システムは、ユーザーがさまざまなフィールドに基づいてカスタム コンテンツ タイプを追加できるようにする必要があり、すべてのフィールドにオプションと検証を追加できます。問題は、すべてが複雑な DB に格納され、実行時に LINQ を使用して抽出されることです。
私は ASP>NET MVC を初めて使用するので、次のジレンマが頭に浮かびました。フォーム ヘルパーがビュー コード内で定義済みではなく、フィールドのタイプに基づいてロードされるようにするには、コンテンツ作成ビューをどのように作成すればよいでしょうか? フィールドの type プロパティの値をチェックし、それに基づいてヘルパーを返すファクトリ クラスを作成する必要がありますか、それとももっと良い方法がありますか。Fieldtypes テーブルを変更するたびに、その新しいタイプのチェックも必ず作成する必要があるため、これは私にはかなり厳格に思えます。
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
...
}