2011-09-24 4 views
0

사용자가 사이트에 페이지를 추가 할 사이트에서 작업하고 있으며 작성한 후 즉시 페이지를 사용할 수 있도록 라우팅을 사용하려고했습니다.Application_Start 이후에 경로 추가

예를 들어, 사용자가 정보 페이지를 만들 수 있으며 지금은 페이지를 추가 할 때 컨트롤러에 로직을 넣습니다. 내가/소개로 이동하려고 다음 URL로 약으로 소개 페이지를 만들 때

if (ModelState.IsValid) 
     { 
      context.Pages.Add(page); 
      context.SaveChanges(); 
      RouteTable.Routes.MapRoute(page.Name, page.Url, 
          new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 

      return RedirectToAction("Index"); 
     } 

는, 나는 404 오류가 발생합니다.

Application_Start 외부에 경로를 추가 할 수 있습니까?

+0

당신이 무엇 시나리오를 들어 다음과 같은 경로를 정의 할 수 있습니다 뭘 하려구? 전체 그림을 제공 할 수 있습니까? 컨트롤러 작업에 경로를 추가하지 말아야합니다. 달성하려는 모든 것을 성취 할 수있는 더 좋은 방법이 있습니다. –

+0

누군가가/About과 같은 URL이있는 새 페이지를 추가 할 때/About을 즉시 찾아 볼 수 있으며 Home/Index를 요청의 기본 경로로 사용합니다. – jcreamer898

답변

0

컨트롤러 동작에서 경로를 정의하지 마십시오.

routes.MapRoute(
    "Default", 
    "{id}", 
    new { controller = "Home", action = "Index" } 
); 
이제

형태 /About의 요청이 Home 컨트롤러의 Index 행동에 라우팅 및 인수로 id=About을 전달됩니다 :

public ActionResult Index(string id) 
{ 
    // if the request was /About, id will equal to About here 
    ... 
} 
관련 문제