2009-01-21 33 views
1

可以說我將大量內容頁面 - 啞HTML - 轉換爲MVC模型。如何輕鬆地向ASP.NET MVC應用程序添加大量'愚蠢的'html頁面

我想要將所有普通的HTML文件粘在一個目錄中,並根據控制器「查找」它們。

這種似乎是標準ASP.NET-MVC中的'HomeController'正在做什麼,但我必須明確地添加每個頁面。

[HandleError] 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      ViewData["Title"] = "Home Page"; 
      ViewData["Message"] = "Welcome to ASP.NET MVC!"; 

      return View(); 
     } 

     public ActionResult About() 
     { 
      ViewData["Title"] = "About Page"; 

      return View(); 
     } 

     public ActionResult About2() 
     { 
      ViewData["Title"] = "About Page 2"; 

      return View(); 
     } 
    } 

我在「家」目錄中增加了一個About2.aspx頁,而不得不增加一個爲約2方法引入HomeController的啓用URL http://localhost:51234/Home/About2

但讓我們說我有50個HTML頁面,我想根據URL找到它們。

我怎麼能做到這一點?

回答

3

更新global.asax中的路由處理程序以忽略靜態頁面的路由。爲了使這更容易,我會把它們放在一個單獨的目錄中。

routes.IgnoreRoute("static/myfile.htm"); 
+0

但我想要的東西像routes.IgnoreRoute(「靜態/ *」); 我可以那樣做嗎? – 2009-01-21 22:19:46

0

隨着時間以前,在一個星系很遠很遠我提交了一個補丁城堡單軌實施DefaultAction功能這樣做的原因是爲了acomplish幾乎完全你想要做同樣的事情。不同之處在於設計師仍然需要訪問動態數據,例如視圖中的登錄名等。它看起來像MVC Contrib中的ConventionController支持相同的功能。

基本上,它允許你有一個方法,當沒有找到其他匹配的方法時被調用。該方法可以查看請求並確定要呈現的視圖。正如我所說的,這個解決方案的優點在於,設計師不需要爲他們希望向用戶顯示的每個頁面編寫控制器操作方法,但他們仍然可以訪問通過模型提供給他們的可用數據。

相關問題