在布局页面的部分视图中显示博客类别

时间:2013-03-24 18:22:58

标签: c# asp.net asp.net-mvc

目前我有局部视图,我手动显示所有带有链接的博客类别。我想通过从数据库中提取来使其动态化。我不确定如何在局部视图中完成此操作。我甚至愿意在实际的_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")

主要问题是部分布局没有控制器,这就是我无法弄清楚如何去做的原因。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

ListCategories(或新BlogController)中创建名为CategoryController的控制器操作。通过从后端数据库中查询,将所有类别添加到操作中的ViewBag

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")