1

因此,我已经阅读了有关 MVC 路由的教程和书籍,并在我的项目中使用它,并且对如何使用它来完成我想要用它完成的事情有了相当深刻的理解。

但是,我遇到了一些我还不太清楚的事情。

我想要完成的是每个客户端的唯一 URL,它看起来不像“http://mysite.com/client/1”。这个 url 会将浏览器带到客户端控制器,索引操作,ClientId = 1 ......显然。

我想做的是有一个像“http://mysite.com/Acme”这样的 URL,它会进行数据库查找以确定哪个客户端具有唯一的名称“Acme”,然后将请求重定向到客户端控制器,索引视图并将 ClientId 设置为客户端上名为“Acme”的任何内容。

默认路由一直在抓,处理不了。

有任何想法吗?

4

2 回答 2

1

我建议使用全局操作过滤器来完成此操作,或者您可以创建一个带有静态路径的路由,该路径将路由到您的查找控制器(例如,/lookup/{companyname} 将路由到您的数据库查找控制器)。

于 2012-12-27T21:19:21.590 回答
1

“http://www.mysite.com/Clients/{ClientName}”怎么样

routes.MapRoute(null, "Clients/{ClientName}", new{controller = "Clients", action = "Index"};

public class ClientsController : Controller
{
    public ActionResult Index(string clientName)
    {
        var id = Db.GetClientIdBy(clientName);

        // do your redirect...
    }
}    

还是我错过了重点?

于 2012-12-27T21:20:18.843 回答