我有一个运行在ColdFusion上的CMS,对于它,我通常有一个前端也运行在Cold Fusion上。出于学习的原因,我现在想用ASP.Net MVC 4框架来实现前端。对于MVC应用程序,通常有一个简单的控制器/操作路由,这在我的CMS中没有任何意义,因为它的结构完全不同。
我的CMS有一个导航模块作为基础,它处理网站的整个结构和路由。在每个导航条目上,我可以分配一个页面,该页面可以有多个元素(例如简单的HTML代码、新闻模块或图库模块)。
站点结构示例:
- home->页面>元素(html)
- 关于->页面>元素(html,…)
- 我们公司->页面>元素(html、新闻、图库)
- 我们的产品->页面>元素(html,…)
- 联系人->页面>元素(html,联系人表单)
因此,如果用户在浏览器中打开"www.example.com/about/our company.html",应用程序就会找到负责任的导航条目"our company",它是条目"about"的子条目。现在,它应该呈现元素"html"、"news"one_answers"gallery",这些元素被分配给该导航条目的页面。
现在我的问题是,使用ASP.Net MVC框架,您将如何实现这一点?这可能吗?MVC在这里有意义吗?
我希望每个页面元素都有一个模型、控制器和视图。我需要像基本控制器这样的东西吗?它可以在不同的(元素)控制器中呈现多个操作?
更新
网站结构不是静态的,它是动态的,它由CMS管理。
另一个例子:www.example.com/de/about/more/andmore/something.html
在这个例子中,我将在导航表中搜索关键字"something",并获得负责的页面。现在我想呈现这个页面的所有元素(我只是称它们为元素)。每个元素都应该有自己的控制器和多个操作。
Asp.net MVC默认路由似乎可以
默认路线定义也适用于您的情况。至少我看不出有什么特别的问题:
{controller}/{action}/{id}
控制器的位置:
- 家庭控制器
- AboutController-以您为例,此控制器将具有
OurCompany
操作(/about/ourcompany) - ContactController
- 等等
仍然不完全清楚
但我想你应该在你的应用程序中提供你想要的URL,我们可能会提供帮助。我不确定元素在您的导航中意味着什么?这是如何转化为URL的?