0

mvc4 で expandoobjects を学習しようとしています。

私はモデルを言う

 pulic class A
 {
   public string FirstName{ get; set; }        
   public string LastName{ get; set; }
   public System.DateTimeOffset DOB {get; set; }
 }

私は別のモデルを持っていると言う

 pulic class B
 {
   public string JobTitle{ get; set; }        
   public System.DateTimeOffset FromDate { get; set; }
   public System.DateTimeOffset ThruDate {get; set; }
 }

各モデルのコントローラーがあります。これで、モデル「A」またはモデル「B」のすべてのアイテムをリストする単一のビューができました。

expandoobjects を使用してこれを実現できると聞きました。モデル 'A' またはモデル 'B' のアイテムのリストをその単一のビューに書き込むことができ、そのビューにそのコンテンツが表示されるはずです。expandoobjects を使用してこれを開始する方法がありません。

誰かがいくつかの開始plsを与えることができますか?

4

1 に答える 1

1

私はこれをしようとさえしませんでした.必要なリフレクション作業の量は恐ろしいものであり、本当のメンテナンスの悪夢です.

このようなフォルダ構造を設定します

-Views
    -Shared
         -EditorTemplates
              -TextBox.cshtml
              -SelectList.cshtml
              -DateBox.cshtml

これらのエディター テンプレートでは、表示するようにテンプレートを設定するため、社内で開発した関連するすべてのスタイルまたはコントロールを追加します。これらがコントロール テンプレートになります。

次に、各 poco で UIHint 属性を利用します。これにより、Razor は各フィールドに使用するテンプレートを決定できます。

そう

public class A
{
   [UIHint("TextBox")]
   public string FirstName{ get; set; }   
   [UIHint("TextBox")]     
   public string LastName{ get; set; }
   [UIHint("DateBox")]
   public System.DateTimeOffset DOB {get; set; }
}

これで、editorformodel がテンプレートの選択を開始すると、editortemplates が選択され、代わりにそれらが使用されます。

私はUIの問題でpocoを乱雑にするのは好きではありません.明確にするために、よりクリーンなpocoと特定のビューを好みます.

于 2013-07-11T08:29:52.493 に答える