這是我的困境。我有一組實體,我想用它來定義一組路由的起點。例如,我想爲我的網站中的所有用戶提供他們自己的mydomain.com/username形式的「子網站」,然後將所有的UserController操作掛起。在ASP.NET MVC中動態生成許多路由...這是一個完全不好的主意嗎?
下面是我在做什麼粗略的例子:
我有一個「UserController的」,用行動方法,如「索引」,「檔案」和「生物」。
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?
如果這是瘋了,我該怎麼做到這個目標?
在此先感謝。我期待着蜂巢式的一些意見。
這會匹配默認路由,是否正確?我想我沒有說清楚這一部分。 – obliojoe 2010-01-20 05:54:46
只要約束你的路線。我添加了一個應該幫助的好帖子的鏈接。 – womp 2010-01-20 06:02:59
感謝您的提示。我今天要研究路線限制,看看他們是否適合我。我會在這裏回覆我的發現。 另外 - 我不擔心你提出的用戶名/控制器衝突(我的項目不同於我在我的問題中使用的例子),但我主要是尋找一些關於路由系統如何處理大量條目的具體信息在路由表中。 Thnaks。 – obliojoe 2010-01-20 15:37:58