2012-03-29 17 views
3

Sipke's tutorialからのコードスニペット(これは素晴らしい方法ですが)私はちょっと混乱しています。彼のチュートリアルでは、.Attachableを使ってコンテンツパーツをコンテンツタイプに追加することができます。しかし、コードスニペットでは、コンテンツパーツの下に.Attachable(false)として宣言され、コンテンツタイプにまだ追加されています。だから私は実現していないいくつかの他の基準がなければならない。 Attachableに関する限り、実際にCustomerPartとAddressPartの違いは何ですか?あなたがコンテンツタイプを構築しているときIIRCコンテンツの一部は、常に(例えばActivatingFilter<>経由、またはあなたの移行でそう指定して)タイプに取り付けることができるAttachableは実際にここで何をしていますか?

 ContentDefinitionManager.AlterPartDefinition(typeof(Models.CustomerPart).Name, p => p 
      .Attachable() 
      ); 

     ContentDefinitionManager.AlterTypeDefinition("Customer", t => t 
      .WithPart(typeof(Models.CustomerPart).Name) 
      .WithPart("UserPart") 
      ); 

     ContentDefinitionManager.AlterPartDefinition(typeof(Models.AddressPart).Name, p => p 
      .Attachable(false) 
      .WithField("Name", f => f.OfType(typeof(TextField).Name)) 
      .WithField("AddressLine1", f => f.OfType(typeof(TextField).Name)) 
      .WithField("AddressLine2", f => f.OfType(typeof(TextField).Name)) 
      .WithField("Zipcode", f => f.OfType(typeof(TextField).Name)) 
      .WithField("City", f => f.OfType(typeof(TextField).Name)) 
      .WithField("Country", f => f.OfType(typeof(TextField).Name)) 
      ); 

     ContentDefinitionManager.AlterTypeDefinition("Address", t => t 
      .WithPart(typeof(Models.AddressPart).Name) 
      ); 

答えて

4

は、しかしAttachable()としてマークされた部分だけが表示されます管理ダッシュボードに表示されます。だから、は表示されませんが、この場合、CustomerPartはダッシュボードを介して構築するときにコンテンツタイプのコンテンツパーツを選択するときに表示されると思います。

編集:私はちょっと歩いていますが、これについての理由は、AddressPartAddressコンテンツアイテムにのみ添付されているためです。顧客とアドレスの間には1対多の関係があり、AddressPartを他のコンテンツタイプに添付できるようにすることはできません。したがって、AddressPartはユーザーからは隠されていますが、移行。

+0

これは正しいです:添付可能なのは管理者に表示されるものです。コードでもアタッチできない部分は、とにかく役に立たないでしょう。 –

関連する問題