public static void AddSpaRoutes(this IRouteBuilder routes) { var urlTemplate = SharpViewComponent.SpaComponentRelativeUrl("{name}", null).Substring(1); routes.MapGet(urlTemplate, async context => { var name = (string)context.GetRouteValue("name"); var parameter = SharpViewComponent.GetParameter <object>(context); var content = await context.RenderComponentAsync(name, parameter); await context.Response.WriteAsync(content); }); }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (this.SpaTarget != null) { var component = Api.Global.RazorPage(); var relativePostUrl = SharpViewComponent.SpaComponentRelativeUrl( component.Path.Replace("Default.cshtml", string.Empty).Split("/", System.StringSplitOptions.RemoveEmptyEntries).Last(), null); output.Attributes.Add("spa-target", this.SpaTarget.Value); output.Attributes.Add("onsubmit", $@"onSpaFormSubmit($(this),""{relativePostUrl}"");return false;"); } //} //else //{ // output.Attributes.Add("onsubmit", "onSpaButtonSubmit($(this)); return false;"); //} await base.ProcessAsync(context, output); }