Ik weet niet zeker of ik je heb begrepen, maar ik denk dat dit is wat je probeert te doen. Hiermee kunt u een normale Posts URL-route afhandelen, met een optionele Revisies -route toegevoegd.
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
);
Controleer vervolgens in de actie van de controller voor deze route of er parameters SubController of RevisionID aanwezig zijn.
public ActionResult Index(string SubController = null, int RevisionID = -1)
{
if (SubController != null)
{
if (SubController == "revisions")
{
//handle revisions route
}
}
else
{
//handle normal posts route
}
}
Op deze manier kan de gebruiker een bericht op de normale manier krijgen:
/posts/1
Of een herziening zoals u dat wilt:
/posts/1/revisions/2