2012-01-26 9 views
1

私はasp.net mvc3を使用して私のWebサイトを構築しています、レイアウトは2列、サイドバーのメインコンテンツです。asp.net mvc3、正しくサイドバーセクションを実装する方法?

サイドバーのセクションを作成します。このサイドバーにはトップ10の記事が表示されます。私が今やったことは、すべてのコントローラのトップ10の記事を照会することです。

ある場所でそれを行い、それをすべてのコントローラで使用する方法はありますか?

答えて

6

Html.RenderAction([methodname], [controllername])を使用してこれを行うことができます。あなたのArticleControllerで次に

<div id="content"> 
    @RenderBody() 
</div> 

@{ Html.RenderAction("ShowTopArticles", "Article"); } 

:だからあなたの_Layout.cshtmlに、あなたのようなもので終わるかもしれない属性ChildActionOnlyとアクションをマーキング

private readonly int MaxArticles = 10; 

[ChildActionOnly] 
public PartialViewResult ShowTopArticles() 
{ 
    var model = articleRepository.GetTopArticles(MaxArticles); 

    return PartialView(model); 
} 

それが唯一のコールで呼び出すことができることを意味しますHtml.Action()またはHtml.RenderAction()になります。

+0

ありがとう、これは私が探しているものです。 – qinking126

+0

@feelexitよろしくお願いします! –

関連する問題