【问题标题】:Custom Routing in MVC3 [duplicate]MVC3中的自定义路由[重复]
【发布时间】:2012-12-05 15:02:53
【问题描述】:

可能重复:
Url routing with database lookup?

我正在寻找构建一个 CMS,这意味着用户可以向系统添加页面,这将涉及在富文本编辑器中输入 URL,然后将内容作为 HTML。

MVC3 路由将如何处理这个问题?据我了解,Controller/Action 方法会触发一个操作并返回一个 View() 但如果此 URL Controller/Action 存在于数据库中并指向数据库中的内容

基本上我需要系统检查路由是否存在,如果没有从数据库中获取html并显示View()

例如/帐户/编辑用户

在我的控制器中我有

public ActionResult EditUser(){

    return View();
}

public ActionResult LoadCMS(String URL){
    // check URL exists in DB
    // get the html from db
    // return the Html as a View to the user
    // if not exists then return error page
}

但是当我请求一个 CMS 页面时我该怎么做:

例如/帐户/显示用户

在我的控制器中没有 DisplayUser Action 所以去 LoadCMS 抱歉,我不知道从哪里开始,所以我没有代码可以提供。

任何帮助或指导将不胜感激。

谢谢

【问题讨论】:

  • @CodeCaster 你知道这方面的任何演示项目吗?看起来太复杂了

标签: c# asp.net-mvc-3 asp.net-mvc-4


【解决方案1】:

在我的控制器中没有 DisplayUser 操作,所以转到 LoadCMS 抱歉,我不知道从哪里开始,所以我没有代码可以提供。

据我了解,您需要使用操作DisplayUser 显示用户信息。因此,您可以创建如下所示的操作。

 public ActionResult DisplayUser(string username){
    var userDetails = GetDataFromDatabase(userId);
    return View("User", userDetails);
 }

因此,假设此操作位于 UsersController 控制器内且 yrshaikh 是用户名,则现在可以使用 url www.website.com/Users/DisplayUser/yrshaikh 访问此操作。

为了进一步了解,您可以尝试了解每个用户在 stackoverflow 上的个人资料链接,例如我的是 https://stackoverflow.com/users/1182982 这里 userId 是 1182982 控制器名称是 users (如果自定义,这可能会有所不同路由完成。)

所以,我希望通过这些信息你可以开始......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多