2013-08-07 54 views
0

我有以下的默认路由设置和它工作得很好:ASP.NET MVC3复杂的路由问题

routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

这里是成功路径的一个例子对我来说:“/ PositionDetail /考生/ 2”

这是一切都很好,但我的问题是,我想建立一个更深的路线。即“/ PositionDetail/Candidates/2/GetMoreCandidates”“/ PositionDetail/Candidates/2/Resume/3”其中Resume是我想要执行的另一个动作,3是ID。注意:这些路由中的每一个都会加载一个新页面,而不是一些局部视图。

如何设置这样的东西,以及'PositionDetail'控制器是什么样的?

回答

1

例如,对于第二个任务,可能如下:

public ActionResult Resume(int CandidateID, int ResumeID) 
{ 

return View(); 
} 

在您的路由:

routes.MapRoute(
       "Resume", // Route name 
       "{controller}/Candidates/{CandidateID}/{action}/{ResumeID}", // URL with parameters 
       new { controller = "PositionDetail", action = "Resume", CandidateID = UrlParameter.Optional, ResumeID= UrlParameter.Optional } 
      ); 

对于拳头任务 - 相同的逻辑