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

创建一个名为ListCategoriesin BlogController(或 new 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")
于 2013-03-24T18:26:41.597 回答