여기 내 딜레마가 있습니다. 나는 일련의 경로를위한 출발점으로 정의하기 위해 사용하고자하는 엔티티 컬렉션을 가지고있다. 예를 들어 내 사이트의 모든 사용자에게 mydomain.com/username 형식의 자체 하위 사이트를 제공 한 다음 모든 UserController 작업을 중단해야합니다. 나는 "인덱스", "프로필"과 "바이오"와 같은 액션 메소드와 "UserController"을 가지고ASP.NET MVC에서 많은 경로를 동적으로 생성하는 것은 완전히 잘못된 생각입니까?
: 여기
내가 뭐하는 거지의 거친 예입니다. RegisterRoutes에서public ActionResult Profile(int UserID)
{
User u = User.SingleOrDefault(u => u.UserID == UserID);
return View(u);
}
() 메소드,이 작업을 수행합니다
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
지금 유효한 작업 경로입니다 , 각 사용자가 자신의 경로를 얻으므로 Controller의 메소드 매개 변수로 UserID를 가져올 수 있습니다. 또한 기본 경로는 계속 작동합니다. 예.
내 질문은이 미친 짓인가? 시스템의 모든 사용자에 대한 경로 테이블에 항목을 생성합니다. 얼마나 많은 경로가 너무 많습니까? 10 명 이상의 사용자가있는 경우 내 서버를 죽입니까? 50? 1000?
이 이 미친 경우 어떻게해야합니까?
미리 감사드립니다. 나는 하이브 마인의 의견을 기다리고 있습니다.
너무 기본 경로와 일치할까요? 나는 그 부분을 명확하게하지 않았다고 생각한다. – obliojoe
그냥 경로를 제약하십시오. 나는 도움이 될 훌륭한 글에 대한 링크를 추가했습니다. – womp
팁 주셔서 감사. 나는 오늘 경로 제약을 들여다보고 그들이 나를 위해 일하는 지보기로 할 것입니다. 내 조사 결과를 여기서 다시보고 할게. 또한 - 사용자 이름/컨트롤러 충돌에 대해 걱정하지 않아도됩니다 (내 프로젝트는 제 질문에서 사용한 예제와 다릅니다).하지만 라우팅 시스템이 많은 수의 항목을 처리하는 방법에 대한 구체적인 정보를 주로 찾고있었습니다. 경로 테이블에. Thnaks. – obliojoe