2013-03-24 46 views
2
页面布局

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

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

在此先感谢您的帮助。

回答

3

BlogController(或新的CategoryController)中创建名为ListCategories的控制器操作。通过从后端数据库

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

查询他们添加的所有类别的行动ViewBag和使用@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") 
+0

谢谢你的工作完美。 – 2013-03-24 18:53:42