我正在使用asp.net MVC 1.0开发一个类似于CMS的迷你应用程序(我将在2.0版本发布时升级它)。一旦我想要的功能,这对CMS来说非常重要,就是管理员能够将网页添加到他们的网站。
基本上,如果管理员想要添加一个名为“Links”的页面,我希望他们能够这样做,而不必经历任何将操作添加到控制器并编译新程序集的麻烦。 / p>
我有一个解决方案的想法,我想知道社区的想法。
我认为我应该编写一个扩展Controller类的类(为了参数,我们称之为UserGeneratedGenericController)。在这个类中,我将有一个Action读取参数并重定向到与传递给操作的参数相对应的View。
我还必须在Global.asax.cs
文件中编辑路由
因此
/UserGeneratedGenericController/Links
会遇到同样的行动
/UserGeneratedGenericController/News
会点击,但会根据需要显示视图。
你说什么?我对您对此方法的评论以及您对其他方法的建议感兴趣。
答案 0 :(得分:1)
我认为你提出的是要走的路
答案 1 :(得分:0)
你想获取页面标题,并为它创建一个唯一的url slug,然后你希望能够根据url slug从数据库中加载内容(使用url slug作为id,而不是实际的数据库ID)。
public ActionResult Index(string UrlSlug) {
// Get Content For Page {UrlSlug}
}
所以你的路线是/ Pages / {UrlSlug},样本将是/ Pages / Links。然后,您的PagesController上的Index操作将拉出url slug(链接)并从存储加载适当的内容,并在主布局中呈现内容。我认为你正在考虑这些问题,只要确保当用户添加页面时,就为它创建一个唯一的URL。用下划线替换空格,删除特殊字符等,以创建一个url安全密钥,用于在请求时加载页面信息。