Asp.net 核心 3.1 找不到要渲染的 Razor 组件
Asp.net core 3.1 can't find Razor component to render
我正在尝试将 Blazor 集成到现有的 asp.net 核心 3.1 应用程序中。我看过的所有教程都说,在 Web 项目中进行正确设置后,您应该能够在任何 cshtml 文件中执行此操作:
<component>
@(await Html.RenderComponentAsync<HelloComponent>(RenderMode.ServerPrerendered))
</component>
但是我得到的是:
找不到类型或命名空间 '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 组件。
4) 添加到 _Layout.cshtml
<base href="~/" /> // In header
<script src="_framework/blazor.server.js"></script> // In bottom script section
您还需要在 Pages/_ViewImports.cshtml
中添加对 Components
文件夹的引用
@using WebApp
@using WebApp.Pages.Shared.Components
@namespace WebApp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
我遇到了这个问题,需要重新启动 Visual Studio...如果有胡子很奇怪,请将其关闭并重新打开。
我正在尝试将 Blazor 集成到现有的 asp.net 核心 3.1 应用程序中。我看过的所有教程都说,在 Web 项目中进行正确设置后,您应该能够在任何 cshtml 文件中执行此操作:
<component>
@(await Html.RenderComponentAsync<HelloComponent>(RenderMode.ServerPrerendered))
</component>
但是我得到的是:
找不到类型或命名空间 '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 组件。
4) 添加到 _Layout.cshtml
<base href="~/" /> // In header
<script src="_framework/blazor.server.js"></script> // In bottom script section
您还需要在 Pages/_ViewImports.cshtml
Components
文件夹的引用
@using WebApp
@using WebApp.Pages.Shared.Components
@namespace WebApp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
我遇到了这个问题,需要重新启动 Visual Studio...如果有胡子很奇怪,请将其关闭并重新打开。