public async Task <string> InvokeWidgetAsync(WidgetInvoker widget) { Guard.NotNull(widget, nameof(widget)); using var psb = StringBuilderPool.Instance.Get(out var sb); using var output = new StringWriter(sb); var actionContext = GetActionContext(); var viewContext = CreateViewContext( actionContext, actionContext.HttpContext.RequestServices.GetService <IViewDataAccessor>().ViewData, output); var result = await widget.InvokeAsync(viewContext); result.WriteTo(output, HtmlEncoder.Default); return(output.ToString()); }
/// <summary> /// Invokes a widget and returns its html content. /// </summary> /// <param name="widget">Widget to invoke.</param> /// <returns>Widget rendering result</returns> public static Task <string> InvokeWidgetAsync(this ControllerBase controller, WidgetInvoker widget) { Guard.NotNull(controller, nameof(controller)); var renderer = controller.HttpContext.RequestServices.GetRequiredService <IRazorViewInvoker>(); return(renderer.InvokeWidgetAsync(widget)); }
public TBuilder Content(WidgetInvoker value) { Item.Widget = value; return(this as TBuilder); }