ASP. NET Core 3.1 MVC с блейзором - отсутствует сборка - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь следовать этому руководству о , используя Blazor в моих существующих приложениях с Visual Studio 2019 v16.4.3 (без предварительного просмотра). Сначала я создал новое веб-приложение Core 3.1 MVC, чтобы протестировать его, а затем внедрить в другие мои приложения. Но в той части, где мне нужно написать помощник по тегу <component> в Index.cshtml, я получаю следующее:

The type or namespace name 'HelloWorld' could not be found (are you missing a using directive or an assembly reference?)    

Вот мой Index.cshtml:

@page
@model IndexModel
@{
    ViewBag.Title = "Home Page";
}

<script src="~/_framework/blazor.server.js"></script>
<component type="typeof(HelloWorld)" render-mode="ServerPrerendered" />

и вот мой HelloWorld.razor:

@page "/Hello"

<h3>HelloWorld</h3>

@code {
}

Я поместил HelloWorld.razor в папку Pages в root моего решения. Также, если необходимо, вот Startup.cs методы, которые были изменены:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    services.AddRazorPages();
    services.AddServerSideBlazor();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");

        endpoints.MapRazorPages();
        endpoints.MapBlazorHub();
    });
}

Чего мне не хватает? Спасибо!

1 Ответ

0 голосов
/ 25 января 2020

Очевидно, что в учебнике, на который я ссылался в оригинальном посте, чего-то не хватает. Вместо:

typeof(HelloWorld)

это должно быть примерно так:

typeof(<namespace name>.<the folder the .razor file is in>.<the .razor file name>)

, поэтому в моем случае это должно выглядеть так:

typeof(TestMVCBlazor.Pages.HelloWorld)
...