diff --git a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
index f64282d73f..12a5d6d736 100644
--- a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
+++ b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs
@@ -308,16 +308,18 @@ namespace Umbraco.Web
Mandate.ParameterNotNull(surfaceType, "surfaceType");
var area = Umbraco.Core.Configuration.GlobalSettings.UmbracoMvcArea;
- var surfaceController = SurfaceControllerResolver.Current.SurfaceControllers
- .SingleOrDefault(x => x.Metadata.ControllerType == surfaceType);
+
+ var surfaceController = SurfaceControllerResolver.Current.RegisteredSurfaceControllers
+ .SingleOrDefault(x => x == surfaceType);
if (surfaceController == null)
throw new InvalidOperationException("Could not find the surface controller of type " + surfaceType.FullName);
- if (!surfaceController.Metadata.AreaName.IsNullOrWhiteSpace())
+ var metaData = PluginController.GetMetadata(surfaceController);
+ if (!metaData.AreaName.IsNullOrWhiteSpace())
{
//set the area to the plugin area
- area = surfaceController.Metadata.AreaName;
+ area = metaData.AreaName;
}
- return html.BeginUmbracoForm(action, surfaceController.Metadata.ControllerName, area, additionalRouteVals, htmlAttributes);
+ return html.BeginUmbracoForm(action, metaData.ControllerName, area, additionalRouteVals, htmlAttributes);
}
///
diff --git a/src/Umbraco.Web/Mvc/SurfaceControllerResolver.cs b/src/Umbraco.Web/Mvc/SurfaceControllerResolver.cs
index 31176d282c..aac359b188 100644
--- a/src/Umbraco.Web/Mvc/SurfaceControllerResolver.cs
+++ b/src/Umbraco.Web/Mvc/SurfaceControllerResolver.cs
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
+using System.Web.Mvc;
+using Umbraco.Core.Logging;
using Umbraco.Core.ObjectResolution;
namespace Umbraco.Web.Mvc
@@ -15,6 +17,7 @@ namespace Umbraco.Web.Mvc
///
/// Gets the surface controllers
///
+ [Obsolete("This property should not be used in code, controllers are to be instantiated via MVC. To get a list of SurfaceController types use the RegisteredSurfaceControllers property.")]
public IEnumerable SurfaceControllers
{
get { return Values; }
@@ -27,5 +30,6 @@ namespace Umbraco.Web.Mvc
{
get { return InstanceTypes; }
}
+
}
}
\ No newline at end of file