Asp.net Core 3.1找不到要渲染的Razor组件

时间:2019-12-09 14:35:28

标签: .net asp.net-core blazor razor-components

我正在尝试将Blazor集成到现有的asp.net core 3.1应用程序中。我看过的所有教程都说,在Web项目中进行了正确的设置后,您应该可以在任何cshtml文件中执行此操作:

<component>
    @(await Html.RenderComponentAsync<HelloComponent>(RenderMode.ServerPrerendered))
</component>

但是我得到了: enter image description here

找不到类型或名称空间“ HelloComponent”。

我做了什么

1)在我的Startup.cs中添加了以下内容

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddServerSideBlazor();
    // .. removed other services...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseRouting();            
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllers();
        endpoints.MapRazorPages();
        endpoints.MapBlazorHub();
    });
    // .. removed the rest of configuration..
}

2)将_Imports.razor文件添加到/ Pages文件夹

@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop    
@using WebApp.Pages.Shared.Components // The location of my HelloComponent

3)添加了仅包含一些文本的新Razor组件。

enter image description here

4)已添加到_Layout.cshtml

<base href="~/" /> // In header
<script src="_framework/blazor.server.js"></script> // In bottom script section

2 个答案:

答案 0 :(得分:2)

您还需要添加对ComponentsPages/_ViewImports.cshtml文件夹的引用

@using WebApp

@using WebApp.Pages.Shared.Components

@namespace WebApp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

答案 1 :(得分:0)

我遇到了这个问题,需要重新启动 Visual Studio...如果胡须很奇怪,请将其关闭并重新打开。