2013-02-22 49 views
0

我剛剛創建了我的第一個使用EF db的數據庫搜索的MVC 3項目,但搜索只是大網站的一部分,大多數頁面都只包含一些文本和圖片。MVC Web應用程序中的靜態內容頁面

我的問題基本上是關於這些在網站上的網頁將是.aspx,而後面的代碼根本什麼也沒有。

他們使用一個母版頁和一些用戶控件 - 我的猜測是這就是我們的前端人把它們aspx而不是html的原因。我需要將她的頁面轉換/包含到我的項目中(我不想在使用EF和Linq後再回到存儲過程和列表視圖,再加上我沒有時間)。

我知道一種可能的方法:爲每個主菜單項創建一個控制器,然後爲每個返回View()的子菜單項添加ActionResult,然後創建相應的視圖。

public class LearnAboutStandardsController : Controller 
    { 

     public ActionResult Index() 
     { 
      return View(); 
     } 
     public ActionResult ITSStandardsBackground() 
     { 
      return View(); 
     } 
     public ActionResult ResearchInitiatives() 
     { 
      return View(); 
     } 

所以我的靜態內容頁面將成爲視圖。

它的工作原理,我只是想爲其餘的頁面做,並修改這些頁面文本中的鏈接。

有沒有其他的方式來處理這些網頁?

這些頁面沒有邏輯。

我知道這不是MVC模式的完美項目,但它有很多靜態內容,但我有我的理由。

回答

1

就我個人而言,我會用簡單的操作控制器來渲染視圖。這樣,如果您稍後添加了更多功能,那麼您已經設置好了。如果你想增加安全性或緩存,它會更容易和更一致。

如果您需要「靜態」頁面的「漂亮」URL,您仍然可以使用WebForms(如果您需要「漂亮」URL,請使用新的Friendly URLs功能)。或者,您可以使用Razor的網頁併爲靜態內容創建CSHTML文件。

+0

如果我使用webforms,我將不得不維護2個主頁(我已經有了我的共享/ _Layout.cshtml),對嗎?我一直在閱讀關於將aspx和MVC結合起來的看法,並且讓簡單操作的控制器看起來更容易實現,它將從.aspx複製粘貼到視圖中。我很高興聽到這是正確的選擇...我不知道如何使用單獨的cshtml - 哪個項目選擇Add-> New Item - > ???,在哪裏放置它們以及如何路由。 – knit 2013-02-22 19:28:28

3

我處理這個問題與 「StaticContent」 控制器:

StaticContentController.cs

public class StaticContentController : Controller 
{ 
    public ActionResult About() 
    { 
     return View(); 
    } 

    public ActionResult Services() 
    { 
     return View(); 
    } 

    public ActionResult Portfolio() 
    { 
     return View(); 
    } 
} 

下面添加您的路線配置的代碼來處理靜態路由:

routes.MapRoute(
    "StaticContent", 
    "{action}", 
    new { controller = "StaticContent" }, 
    new { action = "About|Services|Portfolio" } // Add more here 
); 

你」重啓。

如果您需要更多頁面,只需在StaticController中添加動作並調整StaticContent MapRoute即可。

相關問題