0

我正在使用 asp.net MVC 1.0 开发一个类似 CMS 的迷你应用程序(一旦 2.0 发布,我将对其进行升级)。一旦我想要的功能,对 CMS 来说非常重要,就是管理员向他们的网站添加页面的能力。

本质上,如果管理员想要添加一个名为“链接”的页面,我希望他们能够这样做,而不必经历将操作添加到控制器和编译新程序集的任何麻烦。

我有一个解决方案的想法,我想知道社区的想法。

我认为我应该编写一个扩展 Controller 类的类(为了参数,我们称之为 UserGeneratedGenericController)。在这个类中,我将有一个读取参数并重定向到与传递给操作的参数对应的视图的操作。

我还必须编辑Global.asax.cs文件中的路由

因此 /UserGeneratedGenericController/Links将命中相同的 Action /UserGeneratedGenericController/News,但会根据需要显示视图。

你说什么?我对您对这种方法的评论以及您对其他方法的建议感兴趣。

4

2 回答 2

1

我认为你提出的是要走的路

于 2009-12-09T17:27:42.247 回答
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 安全密钥,用于在请求时加载页面信息。

于 2009-12-07T15:40:13.980 回答