2017-11-08 3 views
1

最初のブロックを作成しようとしています。このブロックのアイデアは、apiエンドポイントから最新のニュースを入手し、それをウェブサイト上の別のページに表示することです。Episerverのブロック

私は何を理解していることは、この

は、この

public class NewsBlock : BlockData 
{ 

      [CultureSpecific] 
      [Display(
       Name = "Heading", 
       Description = "Add a heading.", 
       GroupName = SystemTabNames.Content, 
       Order = 1)] 
      public virtual String Heading { get; set; } 

} 

のようなものをブロックタイプを作成しているそして、私は私のブロック

public class LatestNewsViewModel 
{ 
    public NewsBlock NewsBlock { get; private set; } 
    public IEnumerable<dynamic> LatestNews { get; set; } 

    public LatestNewsViewModel(NewsBlock latestNewsBlock, IEnumerable<dynamic> latestNews) 
    { 
    NewsBlock = latestNewsBlock; 
    LatestNews = latestNews; 
} 
} 

するためのモデルを作成それから私は、ブロックコントローラをcreataインデックスアクションで私は私のAPIからデータを取得し、ブロックコンテナデータを埋める 次に部分ビューを作成し、コントローラからデータを渡しますeビュー ダッシュボードから、私がサイトに欲しい場所にブロックを追加することができます

これは方法ですか?または私は何かを逃していますか?

+0

たぶん完全に関連しますが、あなたはEpiserverに新しいものに述べたので、私はちょうどお勧めしたいと思いますあなたはpの注文を開始する10時にロパティー、その後10分増分。 複数のプロパティを持つブロックまたはページタイプを持っていて、その間にさらにいくつかの突然の必要性がある場合、それらのすべてで注文値を修正する必要はありません。 – Frostrar

+0

@Frostrarありがとうロット。その命令が何であるかについて何らかの説明をすることはできますか?どのように役立ちますか? – mohsinali1317

+2

@ChaudhryMohsinAliは、すべてのプロパティの編集(オンページ編集ではなく)にプロパティがリストされている順序を定義します。詳細については、http://world.episerver.com/documentation/developer-guides/CMS/Content/grouping-content-types-and-properties/を参照してください。 –

答えて

5

これは正しいと思われます。コントローラを介してコンテンツモデルから実際のビューにデータを取得する方法については、多くの方法と意見があります。以下の例は私が思いつくことができるもっとも単純なシナリオです。

public class NewsBlock : BlockData 
{  
      [CultureSpecific] 
      [Display(
       Name = "Heading", 
       Description = "Add a heading.", 
       GroupName = SystemTabNames.Content, 
       Order = 1)] 
      public virtual String Heading { get; set; } 

} 

コントローラ

public class NewsBlockController : BlockController<NewsBlock> 
{ 
    // GET: NewsBlock 
    public override ActionResult Index(NewsBlock currentBlock) 
    { 
     // apistuff 
     ApiModelWhatever returnFromApi = "whatever"; 

     var model = new LatestNewsViewModel(currentBlock, returnFromApi); 
     return PartialView(model); 
    } 
} 

のViewModel

public class LatestNewsViewModel 
{ 
    public string Heading { get; private set; } 
    public ApiModelWhatever ReturnFromApi { get; private set; } 

    public LatestNewsViewModel(NewsBlock latestNewsBlock, ApiModelWhatever returnFromApi) 
    { 
     Heading = latestNewsBlock.Heading; 
     ReturnFromApi = returnFromApi; 
    } 
} 

ビュー

@model LatestNewsViewModel 

<h2>@Html.PropertyFor(model => model.Heading)</h2> 
関連する問題