0
votes

I am trying out prerendering in Blazor Webassembly. I first created a hosted Blazor wasm app in Visual Studio and then added the following _host.cshtml file to the server project:

@page 
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using Amjad.Client.Pages

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Junk</title>
    <base href="~/" />
    <environment include="Development">
        <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
        <link rel="stylesheet" href="Amjad.Client.css.app.css" />

    </environment>
    <environment exclude="Development">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
              asp-fallback-href="css/bootstrap/bootstrap.min.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
              crossorigin="anonymous"
              integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"/>
    </environment>
    <link href="css/site.css" rel="stylesheet" />
    <link href="Amjad.Client.css/app.css" rel="stylesheet" />

</head>
<body>
    <component type="typeof(App)" render-mode="WebAssemblyPrerendered" />
    <script src="_framework/blazor.server.js"></script>
</body>
</html>

When I run the app, I get the following runtime error:

ArgumentException: A value for the 'render-mode' attribute must be supplied to the 'component' tag helper. (Parameter 'RenderMode')
Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)

Stack Query Cookies Headers Routing
ArgumentException: A value for the 'render-mode' attribute must be supplied to the 'component' tag helper. (Parameter 'RenderMode')
Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, int i, int count)
Junk.Pages.Pages__Host.<ExecuteAsync>b__24_1() in _Host.cshtml
+
</body>

Why is the asking for render-mode value when I have already given that?

1

1 Answers

0
votes

Found the solution. I had this code in Startup.cs in Server project:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
                endpoints.MapControllers();
                endpoints.MapFallbackToFile("/_Host");
            });

This needed to change to:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
                endpoints.MapControllers();
                endpoints.MapFallbackToPage("/_Host");
            });

I don't understand why this was resulting in the error shown in my original post.