ASP.NET MVC网站,用户可以在其中添加/删除页面

时间:2009-08-04 06:43:54

标签: asp.net-mvc content-management-system

我正在为客户开发一个网站,他们希望能够管理内容并添加/删除网页。

同时,网站上的某些页面将是互动的,并为登录的客户提供自定义报告。

我已经开始在ASP.NET MVC中开发该网站,因为我希望完全控制渲染。

但是,我发现很难从概念上对网站进行建模。

如果用户可以添加/删除页面,那么如何将URL直接映射到控制器?

我可以执行一个“页面”控制器并将其传递给内容ID,但这意味着所有网站中的代码将位于1个类文件中。

我可以将自定义/互动页面放在不同的控制器下,但是,客户将如何管理它们?

我真的迷失了它的可用性角度。如果我正在构建自定义交互式页面,那么客户端如何添加/删除它们呢?那不会修改应用程序本身的结构吗?

1 个答案:

答案 0 :(得分:2)

我在理解你正在尝试解决的问题以及你的问题时遇到了一些问题:

  

我可以做一个'Page'控制器   并传递一个内容ID,但那   将意味着所有的代码   网站将位于1类文件下。

     

我可以进行自定义/互动   页面坐在不同的控制器下,   但是,客户将如何   能够管理它们吗?

“单个类文件”有什么问题?从语义角度来看你的问题是什么(也就是说,你不希望所有的URL都以/ pages开头)?或者只是代码管理?

假设您从数据库服务,我会执行以下操作:

  1. 拥有一个接受请求的CMSController。它要么a)检查ID(可能忽略存根),要么b)获取存根并在数据库中查找它。
  2. 返回内容。
  3. 这样就可以按照您的意愿提供对/ CMS / Page / 4384的请求。然后,您可以通过多种方式扩展它。置于默认操作中,因此/ CMS / 4384提供页面。然后添加一个存根(/ CMS / 4384 / Page-Title-Or-Whatever-Text)。在CMSController的所有位置设置其他路由,例如/ aboutus /和/ product_info /。或者只是拥有一个CMSController的附加点。

    此外,控制器可以在文件系统上打开一个html文件并提供服务。

    这有帮助吗?

    詹姆斯