布局页面中有两个渲染体?

时间:2012-01-10 19:51:35

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

据我所知,MVC3布局页面中只能存在1个RenderBody,但我想尝试创建另一个。也许我正在以错误的方式看待它......理想情况下,我想添加一个从数据库中提取的推荐部分,一次显示1个推荐,每个页面刷新或新页面显示不同的1。最好的方法是什么?

控制器

CategoryDBContext db = new CategoryDBContext();
public ActionResult Testimonial(int id)
    {
        TestimonialModel model = db.Testimonials.Find(id);
        return View(model);
    }

模型

public class TestimonialModel
{
    public int ID { get; set; }
    public int CategoryID { get; set; }
    public string Data { get; set; }
}

public class CategoryDBContext : DbContext
{
    public DbSet<TestimonialModel> Testimonials { get; set; }
}

View位于名为CategoryData的文件夹中。

2 个答案:

答案 0 :(得分:3)

您需要使用:

布局:

@RenderSection("Testimonial", false) @*false means that this section is not required*@

并在你的视图中

@section Testimonial{
}

答案 1 :(得分:0)

我会使用@Html.Action()

以下是关于使用它们的精彩博文:http://kazimanzurrashid.com/posts/viewdata-or-viewbag-avoid-dependency-pollution-in-asp-dot-net-mvc-controller

这将允许您拥有一个TestimonialController,它可以接收值,查询数据并返回部分视图。