我不完全确定我是否理解你,但我认为这就是你想要做的。这将使您能够处理普通的Posts URL 路由,并附加一个可选的Revisions路由。
routes.MapRoute(
"RevisionsRoute", // Route name
"posts/{PostID}/{SubController}/{RevisionID}", // URL with parameters
new {
controller = "posts",
action = "Index",
SubController = UrlParameter.Optional,
RevisionID = UrlParameter.Optional
} // Parameter defaults
);
然后在此路由的控制器操作中,检查是否存在任何SubController或RevisionID参数。
public ActionResult Index(string SubController = null, int RevisionID = -1)
{
if (SubController != null)
{
if (SubController == "revisions")
{
// handle revisions route
}
}
else
{
// handle normal posts route
}
}
这样用户就可以通过正常方式获得帖子:
/posts/1
或以您想要的方式进行修订:
/posts/1/revisions/2