2010-05-11 64 views
1

我正在实现一个非常简单的需求管理工具。简单需求管理工具的ASP.NET自定义路由

我想要的URL看起来像这样:

显示主页“一号工程”:
http://projectmanager/Project/Project%20One

显示的要求列表正为“一号工程”
http://projectmanager/Project/Project%20One/Requirements

显示“Project One”的要求1
http://projectmanager/Project/Project%20One/Requirement/1

我怎么能建立路由,使

http://projectmanager/Project/Project%20One 

由项目控制器

http://projectmanager/Project/Project%20One/Requirements 
and 
http://projectmanager/Project/Project%20One/Requirements/1 

被要求控制器处理处理。

这有可能吗?

回答

0

我认为这是。

选项之一:

控制器:

public class ProjectController : Controller 
{ 
    public ActionResult Project(string projectName) 
    { 
     return Content("Project: " + projectName); 
    } 
} 

public class RequirementsController : Controller 
{ 
    public ActionResult Requirements(string projectName) 
    { 
     return Content("Requirements: " + projectName); 
    } 

    public ActionResult Requirement(string projectName, int id) 
    { 
     return Content("Requirement: " + projectName + " - " + id); 
    } 
} 

路线报名:

 routes.MapRoute(null, 
         "Project/{projectName}", 
         new {controller = "Project", action = "Project"}); 
     routes.MapRoute(null, 
         "Project/{projectName}/Requirements", 
         new { controller = "Requirements", action = "Requirements" }); 
     routes.MapRoute(null, 
         "Project/{projectName}/Requirement/{id}", 
         new { controller = "Requirements", action = "Requirement" }); 

的ID取决于什么其他途径做你想要的。

编辑:顺便说一下:这条路线应该添加在您的默认路线之前(如果您仍然从应用程序模板中获得)。