2012-01-10 36 views
2

據我所知,只有1個RenderBody可以存在於MVC3佈局頁面中,但我想嘗試創建另一個。也許我正在以錯誤的方式看待它...理想情況下,我想添加一個證明性部分,從數據庫中拉入並一次顯示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; } 
} 

觀是一個名爲CategoryData文件夾中。

佈局:

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

,並在您查看

@section Testimonial{ 
} 

回答

0

我會用@Html.Action()

這裏是一個偉大的博客文章有關使用

3

你需要使用他們:http://kazimanzurrashid.com/posts/viewdata-or-viewbag-avoid-dependency-pollution-in-asp-dot-net-mvc-controller

這將允許您有一個TestimonialController可以接受值,查詢數據並返回部分視圖。

+0

控制器如何知道在哪裏尋找@section Testimonial?我更新我的問題與我迄今爲止... – bl4kh4k 2012-01-10 20:04:19

+0

@ bl4kh4k你控制器不知道任何關於部分..你如何刷新推薦? – 2012-01-10 20:05:55

+0

數據庫有5個條目說,這個想法是在視圖中一次顯示1,所以如果有人刷新頁面,我想有一個隨機輸入顯示。 – bl4kh4k 2012-01-10 20:07:24