0

我有一个在 ColdFusion 上运行的 CMS,为此我通常有一个前端也在 ColdFusion 上运行。出于学习的原因,我现在想用 ASP.Net MVC 4 Framework 来实现前端。对于 MVC 应用程序,您通常有一个简单的控制器/动作路由,这对我的 CMS 没有任何意义,因为它的结构完全不同。

我的 CMS 有一个导航模块作为基础,它处理网站的整个结构和路由。在每个导航条目上,我可以分配一个页面,该页面可以包含多个元素(例如简单的 HTML 代码、新闻模块或图库模块)。

站点结构示例:

  • 主页->页面->元素 (html)
  • 关于->页面->元素(html,...)
    • 我们的公司->页面->元素(html、新闻、图库)
    • 我们的产品->页面->元素(html,...)
  • 联系->页面->元素(html、联系表格)

因此,如果用户在浏览器中打开“www.example.com/about/our-company.html”,则应用程序会找到负责的导航条目“our-company”,它是条目“about”的子项。现在它应该呈现分配给该导航条目页面的元素“html”、“news”和“gallery”。

现在我的问题是,您将如何使用 ASP.Net MVC 框架实现这一点?甚至可能吗?MVC 在这里有意义吗?

我想为每个页面元素创建一个模型、控制器和视图。我是否需要类似基本控制器的东西,它可以在不同的(元素)控制器中呈现多个动作?

更新

站点结构不是静态的,而是动态的,由 CMS 管理。

另一个例子:www.example.com/de/about/more/andmore/something.html

在此示例中,我将在导航表中搜索键“某物”并获取相关页面。现在我想为这个页面渲染所有元素(我只是称它们为元素)。每个元素都应该有它自己的控制器和多个动作。

4

1 回答 1

0

Asp.net MVC 默认路由似乎没问题

默认路由定义也适用于您的情况。至少我没有看到任何特别的问题:

{controller}/{action}/{id}

你有控制器的地方:

  • 家庭控制器
  • AboutController - 以您为例,此控制器将具有OurCompany操作 (/about/ourcompany)
  • 联系人控制器
  • 等等

还是不完全清楚

但我想您应该提供您希望在您的应用程序中使用的 URL,我们可能会提供帮助。我不确定您的导航中的元素意味着什么?这如何转化为 URL?

于 2012-10-10T12:23:16.410 回答