3

現在、すべてのブログカテゴリをリンク付きで手動で表示する部分ビューがあります。データベースからプルして動的にしたい。部分的なビュー内でこれを達成する方法がわかりません。そうすれば、実際の_layoutページ内でそれを実行することもできます。

これが私が今持っているものです。

_Categories.cshtml

<h2>Categories</h2>
<hr/>
<p>
    <a href="@Url.Action("Category", "Blog", new {id = 1})">ASP.Net MVC</a><br/>
    <a href="@Url.Action("Category", "Blog", new {id = 2})">Ruby on Rails</a><br/>
</p>

ハードコーディングではなく、これらのリンクを動的に作成したいと思います。

_Layout.cshtml

@Html.Partial("_Categories")

主な問題は、パーシャルのレイアウト用のコントローラーがないことです。そのため、どのように処理するかがわかりません。

助けてくれてありがとう。

4

1 に答える 1

3

ListCategoriesBlogController(またはnewで )という名前のコントローラーアクションを作成しますCategoryControllerViewBagバックエンドデータベースからクエリを実行して、アクション内のすべてのカテゴリを追加します

public ActionResult ListCategories()
{
    ViewBag.Categories = db.Categories;
}

そして@foreach、アクションのビューでループを使用しますListCategories.cshtml

<h2>Categories</h2>
<hr/>
<p>
    @foreach(Category c in ViewBag.Categories)
    {
        <a href="@Url.Action("Category", "Blog", new { id = c.Id })">@c.Name</a><br/>
    }
</p>

最後に、_Layout.cshtmlこのアクションを指すように変更します。

@Html.Action("ListCategories") 
// or @Html.Action("ListCategories", "CategoryController")
于 2013-03-24T18:26:41.597 に答える