2012-06-23 6 views
7

"라우트 콜렉션에서 'MemberRoute'라우트를 찾을 수 없습니다.라는 오류가 발생합니다. 여기라우트 콜렉션에서 라우트 이름을 찾을 수 없음

public class MvcApplication : System.Web.HttpApplication 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapRoute(
      "MemberRoute",      // routeName 
      "member/{userId}/{pseudoName}", // url 
      new 
      {       // url defaults 
       controller = "Member", 
       action = "Index", 
       userId = 0, 
       pseudoName = UrlParameter.Optional 
      }, 
      new 
      {       // url constraints 
       userId = @"\d+" // must match url {userId} 
      } 
     ); 
    } 

    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 
} 

MemberController,

public ActionResult Index(int userId, string pseudoName) 
    { 
     User user; 
     var unitOfWork = new UnitOfWork(); 
     user = unitOfWork.UserRepository.GetById(userId); 

     var expectedName = user.PseudoName.ToSeoUrl(); 
     var actualName = (pseudoName ?? "").ToLower(); 

     // permanently redirect to the correct URL 
     if (expectedName != actualName) 
      return RedirectToActionPermanent("Index", "Member", new { id = user.UserId, pseudoName = expectedName }); 
     return View(user); 
    } 

발신자,

return RedirectToRoute("MemberRoute", new { userId = user.UserId, pseudoName = user.PseudoName }); 

왜 경로 이름을 찾을되지 않는, 내 Global.asax에 무엇입니까?

+0

여기를 참고하십시오 : http://stackoverflow.com/q/8944355/102937 –

+0

글쎄, 제대로 표시되지 않는 것은 아닙니다. 나는 물건을 라우팅하고 컨트롤러/인덱스와 이것 저것을 추가하기 위해 리다이렉트를 시도했다. 그러나 그것은 site.com/member?userId=1&pseudoName=jondoe와 같은 url을 보이기보다는 site.com/member/이다. 1/정답 –

답변

7

MVC 4와 모든 사용자 지정 라우팅이 RouteConfig.cs 파일의 App_Start 폴더에있는 것을 확인하십시오. Global.asax.cs를 열었을 때 RegisterRoutes 메서드가 없어서 직접 추가하고 사용자 지정 경로를 추가했지만 작동하지 않았습니다. RouteConfig 파일을 찾았습니다. 이미 이미 설치된 RegisterRoutes 메소드가 있습니다. 거기에 내 맞춤 경로가 추가되어 예상대로 작동합니다.

관련 문제