我正在实现一个非常简单的需求管理工具。
我希望URL看起来像这样:
显示"Project One“的主页:
http://projectmanager/Project/Project%20One
显示了"Project One“正在处理的需求列表
http://projectmanager/Project/Project%20One/Requirements
显示“项目一”的需求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
是由需求控制器处理的。
这有可能吗?
发布于 2010-05-11 19:46:37
我想是的。
其中一个选项是:
控制器:
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取决于您想要的其他路由。
编辑:顺便说一句:这个路由应该添加在你的默认路由之前(如果你仍然从应用程序模板中获得它)。
https://stackoverflow.com/questions/2808580
复制相似问题