|
| 1 | +// Licensed to the .NET Foundation under one or more agreements. |
| 2 | +// The .NET Foundation licenses this file to you under the MIT license. |
| 3 | + |
| 4 | +using Microsoft.AspNetCore.Components; |
| 5 | +using Microsoft.AspNetCore.Http; |
| 6 | +using Microsoft.AspNetCore.Mvc.Rendering; |
| 7 | + |
| 8 | +namespace Microsoft.AspNetCore.Mvc.ViewFeatures; |
| 9 | + |
| 10 | +/// <summary> |
| 11 | +/// Holds extension methods on <see cref="IResultExtensions"/>. |
| 12 | +/// </summary> |
| 13 | +public static class RazorComponentResultExtensions |
| 14 | +{ |
| 15 | + /// <summary> |
| 16 | + /// Returns an <see cref="IActionResult"/> that renders a Razor Component. |
| 17 | + /// </summary> |
| 18 | + /// <typeparam name="TComponent">The type of component to render.</typeparam> |
| 19 | + /// <param name="resultExtensions">The <see cref="ResultExtensions"/>.</param> |
| 20 | + /// <returns>An <see cref="IActionResult"/> that renders a Razor Component.</returns> |
| 21 | + public static IActionResult RazorComponent<TComponent>(this IResultExtensions resultExtensions) where TComponent : IComponent |
| 22 | + => new RazorComponentResult(typeof(TComponent)); |
| 23 | + |
| 24 | + /// <summary> |
| 25 | + /// Returns an <see cref="IActionResult"/> that renders a Razor Component. |
| 26 | + /// </summary> |
| 27 | + /// <typeparam name="TComponent">The type of component to render.</typeparam> |
| 28 | + /// <param name="resultExtensions">The <see cref="ResultExtensions"/>.</param> |
| 29 | + /// <param name="componentParameters">Parameters for the component.</param> |
| 30 | + /// <returns>An <see cref="IActionResult"/> that renders a Razor Component.</returns> |
| 31 | + public static IActionResult RazorComponent<TComponent>(this IResultExtensions resultExtensions, object componentParameters) where TComponent : IComponent |
| 32 | + => new RazorComponentResult(typeof(TComponent)) { Parameters = componentParameters }; |
| 33 | + |
| 34 | + /// <summary> |
| 35 | + /// Returns an <see cref="IActionResult"/> that renders a Razor Component. |
| 36 | + /// </summary> |
| 37 | + /// <typeparam name="TComponent">The type of component to render.</typeparam> |
| 38 | + /// <param name="resultExtensions">The <see cref="ResultExtensions"/>.</param> |
| 39 | + /// <param name="componentParameters">Parameters for the component.</param> |
| 40 | + /// <param name="renderMode">A <see cref="RenderMode"/> value that specifies how to render the component.</param> |
| 41 | + /// <returns>An <see cref="IActionResult"/> that renders a Razor Component.</returns> |
| 42 | + public static IActionResult RazorComponent<TComponent>(this IResultExtensions resultExtensions, RenderMode renderMode, object componentParameters) where TComponent: IComponent |
| 43 | + => new RazorComponentResult(typeof(TComponent)) { RenderMode = renderMode, Parameters = componentParameters }; |
| 44 | +} |
0 commit comments