Fixes: U4-5710 UmbracoVirtualNodeRouteHandler does not allow for SurfaceController forms

This commit is contained in:
Shannon
2014-10-29 18:20:01 +10:00
parent 7c5ad67a9f
commit 4a1ea6e2d8
7 changed files with 81 additions and 8 deletions

View File

@@ -34,6 +34,25 @@ namespace Umbraco.Web.Mvc
requestContext.RouteData.DataTokens.Add("umbraco", renderModel);
requestContext.RouteData.DataTokens.Add("umbraco-doc-request", umbracoContext.PublishedContentRequest);
requestContext.RouteData.DataTokens.Add("umbraco-context", umbracoContext);
//this is used just for a flag that this is an umbraco custom route
requestContext.RouteData.DataTokens.Add("umbraco-custom-route", true);
//Here we need to detect if a SurfaceController has posted
var formInfo = RenderRouteHandler.GetFormInfo(requestContext);
if (formInfo != null)
{
var def = new RouteDefinition
{
ActionName = requestContext.RouteData.GetRequiredString("action"),
ControllerName = requestContext.RouteData.GetRequiredString("controller"),
PublishedContentRequest = umbracoContext.PublishedContentRequest
};
//set the special data token to the current route definition
requestContext.RouteData.DataTokens["umbraco-route-def"] = def;
return RenderRouteHandler.HandlePostedValues(requestContext, formInfo);
}
return new MvcHandler(requestContext);
}