From 36cadf39e9a7c20ddb16443d22e2f8ae0289fa7c Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Tue, 19 Feb 2013 02:22:00 +0600 Subject: [PATCH] Fixes: #U4-1695 --- src/Umbraco.Web/HtmlHelperRenderExtensions.cs | 12 +++++++----- src/Umbraco.Web/Mvc/SurfaceControllerResolver.cs | 4 ++++ 2 files changed, 11 insertions(+), 5 deletions(-) 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