0

我刚刚创建了我的第一个 MVC 3 项目,首先使用 EF db 进行数据库搜索,但搜索只是大型网站的一部分,大多数页面只包含一些文本和图像。

我的问题基本上是关于网站上的这些页面.aspx,而后面的代码将一无所有。

他们使用母版页和一些用户控件——我猜这就是我们的前端人员将它们设为 aspx 而不是 html 的原因。

我需要将她的页面转换/包含到我的项目中(我不想在使用 EF 和 Linq 后返回存储过程和列表视图,而且我没有时间)。

我知道一种可能的方法:为每个主菜单项创建一个控制器,然后添加为每个返回的子菜单项命名的 ActionResult View(),然后创建各自的视图。

 public class LearnAboutStandardsController : Controller
    {

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

所以我的静态内容页面将成为视图。

它正在工作,我只想对其余页面执行此操作并修改这些页面文本中的链接。

有没有其他方法来处理这些页面?

这些页面背后没有逻辑。

我知道对于具有如此多静态内容的 MVC 模式来说,这不是一个完美的项目,但我有我的理由。

4

2 回答 2

3

我用“StaticContent”控制器处理这个问题:

静态内容控制器.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。

于 2013-07-10T05:20:46.503 回答
1

就个人而言,我会拥有只呈现视图的简单操作的控制器。这样,如果您稍后添加更多功能,您就已经设置好了。如果您想添加安全性或缓存,它会更容易且更一致。

对于“静态”页面,您仍然可以使用 WebForms(如果您想要“漂亮”的 URL,可以使用新的友好 URL功能)。或者,您可以使用带有 Razor 的网页并为静态内容创建 CSHTML 文件。

于 2013-02-22T19:01:46.410 回答