目前我有局部视图,我手动显示所有带有链接的博客类别。我想通过从数据库中提取来使其动态化。我不确定如何在局部视图中完成此操作。我甚至愿意在实际的_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")
主要问题是部分布局没有控制器,这就是我无法弄清楚如何去做的原因。
提前感谢您的帮助。
答案 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")