2010-03-27 71 views
1

我創建了一個非常簡單的論壇作爲我的第一個MVC項目。我的數據庫佈局很簡單:在mvc.net創建一個簡單的論壇

[ForumThread] 
Id 
Title 

[ForumPost] 
Id 
ThreadId 
Message 
ParentId // To tell which post this post should hang on to 
Created 
CreatedBy 
Updated 
UpdatedBy 

我創建了ForumThread視圖顯示線程的列表,並能夠創建一個新的線程。

有一個ForumThread的細節視圖,它顯示了具有底層帖子的線程。

我的問題是我如何在ForumThread細節視圖中最簡單的方法,可以顯示一個視圖來創建ForumPost,而不必先導航到另一個頁面?

回答

1

您可以創建一個局部視圖(的.ascx),它包含的形式允許您創建一個論壇帖子,包括該部分的詳細信息視圖:

<% Html.RenderPartial("~/Views/Home/PostForm.ascx"); %> 
+0

謝謝,但是當我試圖做到這一點時,我得到以下錯誤:傳入字典的模型項目類型爲「SampleWebsite.Models.Forum.ForumThreadModel」,但此字典需要類型爲「SampleWebsite」的模型項目。 ForumPost」。 – Dofs 2010-03-27 12:19:24

+0

您可以將不同的模型傳遞給partial:'<%Html.RenderPartial(「〜/ Views/Home/PostForm.ascx」,Model.ForumPost); %>'這應該是正確的類型。 – 2010-03-27 12:22:11

1

正如達林所說,你只需要一個局部視圖 - 在該視圖中,您可以實現表單,綁定到不同的模型等,並且如果需要的話還可以由不同的控制器處理任何事件等。

將部分功能封裝到部分視圖中也很好 - 讓代碼看起來乾淨整潔,如果您發現自己需要再次使用該表單,那麼它遵循DRY(不要重複自己)原則 - 您只需添加另一個Html.RenderPartial()調用到你需要的地方。