我正在为我的一个客户建立一个网站内容管理系统。这是一个高度定制化的系统,所以我不能使用任何“架子上”的解决方案。
我需要允许我的客户在飞行中添加页面到网站。我这里有两个选择:(1)创建一个格式为www.mycompany.com/page.aspx?catID=5&pageID=3的数据库驱动页面(用类别和页面ID查询数据库,抓取数据并将其显示在页面上)-或者- (2)允许管理系统创建静态页面,如www.mycompany.com/company/aboutus.aspx和www.mycompany.com/company/company_history.aspx等。
我相信,虽然前者更容易实现,但后者对用户和谷歌来说都是更好的选择。
我的问题是(最后):(1)您是否同意后者是更好的解决方案,以及(2)实现这种解决方案的最佳方式是什么?我是否应该使用FileSystem创建和更新每个文件(即,网站的管理系统要求用户提供页面/文件名、页面标题和内容,并根据这些参数动态创建页面)?有没有更好的方法?
谢谢!
发布于 2009-07-13 12:59:37
这是完全可能的数据库驱动的页面与漂亮的URL。StackOverflow本身就是一个很好的例子--这个问题的网址是http://stackoverflow.com/questions/1119274/adding-pages-on-the-fly-with-a-cms-system,但是页面是从数据库构建的,而不是静态的HTML。
发布于 2009-07-13 13:02:02
我将使用第一种解决方案,但使用自定义请求处理程序来屏蔽地址。基本上,为每个页面提供一个惟一的字符串ID (比如about-us),然后使用接收所有请求的请求处理程序在数据库中找到这个特定的页面并呈现它。
有关其他信息,请参阅this article (在ASP.NET中搜索自定义http处理程序时找到)。在那篇文章中,它添加了以下处理程序:
<add verb="*" path="*.piechart" type="PieChartHandler"/>您可能希望捕获所有媒体路径(path,*),但不包括用于CSS、图像和JavaScript的某些媒体路径。
更多资源:
发布于 2009-07-13 13:04:41
如果我在你的位置,我会远离静态页面。动态数据、MVC和一些好的规划应该会带你走很长一段路!
您需要做的是创建一些或多个模板,以供mvc中的每个视图/控制器使用。让负责内容的人通过动态数据实体来处理它。
https://stackoverflow.com/questions/1119274
复制相似问题