/// <summary> /// Generates a URL based on the current Umbraco URL with a custom query string that will route to the specified SurfaceController /// </summary> /// <param name="url"></param> /// <param name="action"></param> /// <param name="surfaceType"></param> /// <param name="additionalRouteVals"></param> /// <returns></returns> public static string SurfaceAction(this UrlHelper url, string action, Type surfaceType, object additionalRouteVals) { Mandate.ParameterNotNullOrEmpty(action, "action"); Mandate.ParameterNotNull(surfaceType, "surfaceType"); var area = ""; 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); } var metaData = PluginController.GetMetadata(surfaceController); if (metaData.AreaName.IsNullOrWhiteSpace() == false) { //set the area to the plugin area area = metaData.AreaName; } var encryptedRoute = UmbracoHelper.CreateEncryptedRouteString(metaData.ControllerName, action, area, additionalRouteVals); var result = UmbracoContext.Current.OriginalRequestUrl.AbsolutePath.EnsureEndsWith('?') + "ufprt=" + encryptedRoute; return(result); }
/// <summary> /// Generates a URL based on the current Umbraco URL with a custom query string that will route to the specified SurfaceController /// </summary> /// <param name="url"></param> /// <param name="action"></param> /// <param name="controllerName"></param> /// <param name="area"></param> /// <param name="additionalRouteVals"></param> /// <returns></returns> public static string SurfaceAction(this UrlHelper url, string action, string controllerName, string area, object additionalRouteVals) { Mandate.ParameterNotNullOrEmpty(action, "action"); Mandate.ParameterNotNullOrEmpty(controllerName, "controllerName"); var encryptedRoute = UmbracoHelper.CreateEncryptedRouteString(controllerName, action, area, additionalRouteVals); var result = UmbracoContext.Current.OriginalRequestUrl.AbsolutePath.EnsureEndsWith('?') + "ufprt=" + encryptedRoute; return(result); }
/// <summary> /// Creates an UmbracoForm /// </summary> /// <param name="viewContext"></param> /// <param name="controllerName"></param> /// <param name="controllerAction"></param> /// <param name="area"></param> /// <param name="method"></param> /// <param name="additionalRouteVals"></param> public UmbracoForm( ViewContext viewContext, string controllerName, string controllerAction, string area, FormMethod method, object additionalRouteVals = null) : base(viewContext) { _viewContext = viewContext; _method = method; _encryptedString = UmbracoHelper.CreateEncryptedRouteString(controllerName, controllerAction, area, additionalRouteVals); }
/// <summary> /// Generates a URL based on the current Umbraco URL with a custom query string that will route to the specified SurfaceController /// </summary> /// <param name="url"></param> /// <param name="action"></param> /// <param name="controllerName"></param> /// <param name="area"></param> /// <param name="additionalRouteVals"></param> /// <returns></returns> public static string SurfaceAction(this UrlHelper url, string action, string controllerName, string area, object additionalRouteVals) { if (string.IsNullOrEmpty(action)) { throw new ArgumentNullOrEmptyException(nameof(action)); } if (string.IsNullOrEmpty(controllerName)) { throw new ArgumentNullOrEmptyException(nameof(controllerName)); } var encryptedRoute = UmbracoHelper.CreateEncryptedRouteString(controllerName, action, area, additionalRouteVals); var result = UmbracoContext.Current.OriginalRequestUrl.AbsolutePath.EnsureEndsWith('?') + "ufprt=" + encryptedRoute; return(result); }