2011-02-09 6 views
0

複数のビューとコントローラで参照されている製品ツリービューがあります。製品ツリービューのツリービュー項目は、AJAXとパブリックActionメソッドを使用して動的にロードされます。デザイン:複数のコントローラ間で共有されている製品ツリービュー

私は、製品のツリービューのロジックとパブリックアクションメソッドをSharedControllerなどの共有コントローラに移動する必要がありますか?何がお勧めですか?

答えて

1

burnt1ce、

は相変わらず、それはあなたが常にアヤックス(jqueryのかmsajaxを経由して、それを使用している場合、それはあまり重要ではないこと[?? ...依存しますが、ご質問に適切なタグを追加することができます])、私は、いくつかのオーバーロードを持つhtml.helperにリファクタリングして、異なる製品モデルをロードできるようにしたいと思うでしょう。 (必要な場合は、さまざまな製品サブクラスを許可するために、具体的なクラスではなく製品インターフェイスを使用することをお勧めします)...

ビューのコンテキストでロードする必要がある場合は、それはどこにあり、html.RenderAction()メソッドを介してロードします。

これは確かに私の最初の考えであろう。

+0

ここで、AJAXリクエストに応答するアクションメソッドを保存しますか? Telerikのツリービューコントロール(http://demos.telerik.com/aspnet-mvc/treeview)を使用しているので、HTMLヘルパーに移動するためのプレゼンテーションロジックはあまりありません。 – burnt1ce

+0

OK、サードパーティ製のtelerikコントロールであるツリービューについての部分を追加したので、状況が変わります。私はあなたがこの1つであなた自身の論理を動かしていると思ったので、上記の私のコメント。それがサードパーティのコントロールなら、私はあなたがtelerik mvcのコントロールを使用している経験がないので、telerikフォーラムで質問する必要があると思います。誤解をおかけして申し訳ありません。 –

0

あなたの製品データを取得するためのアクションを持つA ProductController(JSONを返す?)

Telerikのビューを綴るために部分的なビューを使用してください。私はそのビューから、製品を入手してツリービューを更新するためのajaxコールを作成すると仮定します。

<%= Html.Telerik().TreeView() 
      .Name("TreeView") 
      .Items(item => 
      { 
       item.Add() 
        .Text("Mail") 
        .ImageUrl("~/Content/PanelBar/FirstLook/mail.gif") 
        .ImageHtmlAttributes(new { alt = "Mail Icon" }) 
        .Items(subItem => 
        { 
... 
関連する問題