- Fixing OrchardControllerFactory.GetAreaName to align it with what MVC 2 does internally.

--HG--
branch : dev
This commit is contained in:
Suha Can
2010-03-01 11:20:52 -08:00
parent 62902e2b38
commit 4487940e60

View File

@@ -1,4 +1,3 @@
using System;
using System.Web.Mvc;
using System.Web.Routing;
using Autofac;
@@ -27,14 +26,29 @@ namespace Orchard.Mvc {
return base.CreateController(requestContext, controllerName);
}
private string GetAreaName(RouteData context) {
object area;
if (context.Values.TryGetValue("area", out area)) {
return Convert.ToString(area);
public static string GetAreaName(RouteBase route) {
var routeWithArea = route as IRouteWithArea;
if (routeWithArea != null) {
return routeWithArea.Area;
}
var castRoute = route as Route;
if (castRoute != null && castRoute.DataTokens != null) {
return castRoute.DataTokens["area"] as string;
}
return null;
}
public static string GetAreaName(RouteData routeData) {
object area;
if (routeData.DataTokens.TryGetValue("area", out area)) {
return area as string;
}
return GetAreaName(routeData.Route);
}
public static IContainer GetRequestContainer(RouteData routeData) {
object dataTokenValue;
if (routeData != null &&