MVC3 中的自定义路由



可能的重复项:
使用数据库查找进行 URL 路由?

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

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

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

例如/Account/EditUser

在我的控制器中,我有

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页面时,我该怎么办:

例如/Account/DisplayUser

在我的控制器中没有显示用户操作,因此请转到加载CMS抱歉,我不知道从哪里开始,所以我没有代码可以提供。

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

谢谢

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

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

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

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

为了更深入地了解,您可以尝试了解每个用户在stackoverflow上的配置文件链接,例如我的 https://stackoverflow.com/users/1182982 在这里1182982 userId,控制器名称users(如果完成自定义路由,这可能会有所不同。

所以,我希望有了这些信息,你可以开始...