在现有的Asp.net核心项目中添加空白组件的问题

问题描述

我们有一个现有的asp.net项目,我的系统中有一个副本,

asp.net核心项目的正常结构,如下所示:

-Project
   -- Properties
   -- Areas
   -- Controllers
   -- Views 
   -- ...

其中一部分代码将在服务器端使用,但是我遇到了一个奇怪的问题。

我在stratup.cs文件添加了所需的服务:

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

接下来,在项目结构的根目录中,我添加一个文件用于blazor导入:

_Imports.razor

内容

@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

然后尝试创建类似“〜/ Components / Pages / Component.razor”的blazor组件。 创建了剃须刀文件后,我意识到@page或@code关键字用红色下划线表示语法错误

我试图在“〜/ Views / _ViewImports.cshtml”中添加名称空间:

@using MyProjectFullName.Components.Pages

通常,组件的名称空间是从应用程序的根名称空间和组件在应用程序中的位置(文件夹)派生的。如果应用程序的根名称空间是BlazorSample,并且Counter组件位于Pages文件夹中:enter link description here

但是尝试构建项目时出现此错误

enter image description here

所有这些在我的系统中都可以正常工作,但是在其他系统中执行相同操作时,我会收到有关名称空间或@ page / @ code关键字的错误

两个Visual Studio版本都相同-2019-,我们使用的是netcore 3.1.402

搜索了几天,但找不到有效的解决方案。

解决方法

作为一种替代解决方案,我决定将组件移至blazor项目,仅使用.net核心项目中的引用...它可以正常工作而没有任何差异或任何问题。

也许不是主要的解决方案,但现在可以使用。

感谢您对主要问题的任何解决方案