2009-04-28 34 views
2

在一個內容管理系統通常可以動態創建例如您將如何使用ASP.NET MVC在CMS中創建頁面?

www.website.com.au/home.aspx

www.website.com.au/projects.aspx

頁www.website.com.au/contact-us.aspx

在我們編寫的以前的CMS中,當用戶選擇在他的網站中創建新頁面時,我們在磁盤上物理創建了這些文件。我們複製從基本模板頁的新文件,重命名的文件,並改名爲類在後面的代碼如

template_page.aspx和template_page.aspx.cs變成

projects.aspx和projects.aspx。 cs

這些都是通過我們的CMS應用程序完成的。沒有文件需要用戶手動創建。

這種方法如何使用MVC工作?

如www.website.com.au/home/

www.website.com.au/projects/

www.website.com.au/contact-us/

想必我們需要動態創建控制器和視圖?

這似乎比舊的方法更混亂,但我認爲它是可行的。

任何人都可以想出一個更聰明的方法來做到這一點?

回答

0

您應該可以在某些路由工作中使用一個控制器和一對視圖(顯示,創建,編輯)。我爲一個像這樣的個人項目做了一個超級簡單的實現。我把這條路線放在我的路由列表的頂部附近,並使用約束來確定它是否應該被視爲我規則中的靜態頁面。我的實施沒有任何層次結構,即pages/About-us/contact - only/contact。

route: 
routes.MapRoute("StaticContent", "{title}", 
    new { controller = "Page", action = "Details"}, 
    new { title = new InvalidTitleContstraint()}); 


controller: 
public class PageController : Controller 
{ 
    // Details checks if it can find a matching title in the DB 
    // redirects to Create if no match 
    public ActionResult Details(string title) 
    // GET 
    public ActionResult Create() 
    // POST 
    public ActionResult Create(Page page) 
} 
相關問題