Table of Contents

Class MacroRenderingController

Namespace
Umbraco.Cms.Web.BackOffice.Controllers
Assembly
Umbraco.Web.BackOffice.dll

API controller to deal with Macro data

public class MacroRenderingController : UmbracoAuthorizedJsonController
Inheritance
MacroRenderingController
Inherited Members

Constructors

MacroRenderingController(IUmbracoMapper, IUmbracoComponentRenderer, IVariationContextAccessor, IMacroService, IUmbracoContextAccessor, IShortStringHelper, ISiteDomainMapper)

public MacroRenderingController(IUmbracoMapper umbracoMapper, IUmbracoComponentRenderer componentRenderer, IVariationContextAccessor variationContextAccessor, IMacroService macroService, IUmbracoContextAccessor umbracoContextAccessor, IShortStringHelper shortStringHelper, ISiteDomainMapper siteDomainHelper)

Parameters

umbracoMapper IUmbracoMapper
componentRenderer IUmbracoComponentRenderer
variationContextAccessor IVariationContextAccessor
macroService IMacroService
umbracoContextAccessor IUmbracoContextAccessor
shortStringHelper IShortStringHelper
siteDomainHelper ISiteDomainMapper

Methods

CreatePartialViewMacroWithFile(CreatePartialViewMacroWithFileModel)

[HttpPost]
public IActionResult CreatePartialViewMacroWithFile(MacroRenderingController.CreatePartialViewMacroWithFileModel model)

Parameters

model MacroRenderingController.CreatePartialViewMacroWithFileModel

Returns

IActionResult

GetMacroParameters(int)

Gets the macro parameters to be filled in for a particular macro

public ActionResult<IEnumerable<MacroParameter>> GetMacroParameters(int macroId)

Parameters

macroId int

Returns

ActionResult<IEnumerable<MacroParameter>>

Remarks

Note that ALL logged in users have access to this method because editors will need to insert macros into rte (content/media/members) and it's used for inserting into templates/views/etc... it doesn't expose any sensitive data.

GetMacroResultAsHtmlForEditor(string, int, IDictionary<string, object>)

[HttpGet]
public Task<IActionResult> GetMacroResultAsHtmlForEditor(string macroAlias, int pageId, IDictionary<string, object> macroParams)

Parameters

macroAlias string
pageId int
macroParams IDictionary<string, object>

Returns

Task<IActionResult>

GetMacroResultAsHtmlForEditor(MacroParameterModel)

Gets a rendered macro as HTML for rendering in the rich text editor. Using HTTP POST instead of GET allows for more parameters to be passed as it's not dependent on URL-length limitations like GET. The method using GET is kept to maintain backwards compatibility

[HttpPost]
public Task<IActionResult> GetMacroResultAsHtmlForEditor(MacroRenderingController.MacroParameterModel model)

Parameters

model MacroRenderingController.MacroParameterModel

Returns

Task<IActionResult>