2013-02-22 48 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即可。

相关问题