【发布时间】:2011-01-07 03:26:22
【问题描述】:
这是我的困境。我有一组实体,我想用它们来定义一组路线的起点。例如,我想为我站点中的所有用户提供他们自己的“子站点”,形式为 mydomain.com/username,然后将所有 UserController 操作挂起。
这是我正在做的一个粗略示例:
我有一个“UserController”,带有“Index”、“Profile”和“Bio”等操作方法。
public ActionResult Profile( int UserID )
{
User u = User.SingleOrDefault(u => u.UserID == UserID);
return View(u);
}
在 RegisterRoutes() 方法中,我这样做:
foreach (User user in User.Find(u => u.Active == true))
{
routes.MapRoute(
"",
user.UserName + "/{action}",
new { controller="User", action="Index", UserID=user.UserID }
);
}
这行得通,并且完全按照我的意愿工作:
domain.com/[username]/Profile
domain.com/[username]/Bio
现在是有效的工作路由,它们可以将 UserID 作为控制器中的方法参数,因为每个用户都有自己的路由。此外,默认路由仍然有效。耶。
我的问题是,这很疯狂吗?我正在为系统中的每个用户在路由表中创建一个条目。多少条路线太多了?如果有超过 10 个用户,这会杀死我的服务器吗? 50? 1000?
如果这是疯了,我还能如何实现这个目标?
提前致谢。我期待来自蜂巢思维的一些意见。
【问题讨论】:
标签: c# asp.net asp.net-mvc routing asp.net-mvc-routing