2

私はかなり極端なケースを提示する 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
...
}
4

2 に答える 2

1

あなたの将来にHTMLヘルパーが見えます。HTML ヘルパーは実行時にモデルを処理し、ビューに適切な HTML を出力できます。そのルートに進む場合は、StringBuilder クラスと TagBuilder クラスを理解することをお勧めします。それらは物事を単純化し、HTML ヘルパーをより読みやすくするのに役立ちます。

于 2010-03-12T17:48:41.027 に答える
0

テンプレート化されたヘルパーの概念について知りませんでした。これは、何かに慣れていないときに起こることです。かなり、これが私の問題を解決したものです

http://msdn.microsoft.com/en-us/library/ee308450%28VS.100,printer%29.aspx

于 2010-03-16T10:14:57.027 に答える