Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 现有项目中缺少Blazor功能_C#_Asp.net Core_Blazor Server Side - Fatal编程技术网

C# 现有项目中缺少Blazor功能

C# 现有项目中缺少Blazor功能,c#,asp.net-core,blazor-server-side,C#,Asp.net Core,Blazor Server Side,我已经开始在VS2019中使用新的“Blazor服务器应用程序”项目模板,一切正常。 现在我尝试在现有的.NETCore3ASP.NETMVC应用程序中使用Blazor的一些东西。 我已将“.MapBlazorHub();&.AddServerSideBlazor();”添加到启动类中,并 到_布局文件。 新的razor组件按预期呈现,并触发@code块中的“OnInitialized()”方法。但是当我尝试使用一个按钮点击事件时,什么都没有发生-不是在VS控制台-不是在浏览器控制台。 经过几

我已经开始在VS2019中使用新的“Blazor服务器应用程序”项目模板,一切正常。 现在我尝试在现有的.NETCore3ASP.NETMVC应用程序中使用Blazor的一些东西。 我已将“.MapBlazorHub();&.AddServerSideBlazor();”添加到启动类中,并

到_布局文件。 新的razor组件按预期呈现,并触发@code块中的“OnInitialized()”方法。但是当我尝试使用一个按钮点击事件时,什么都没有发生-不是在VS控制台-不是在浏览器控制台。 经过几个小时的研究,我发现这两个项目的语法突出显示有所不同:

Microsoft Blazor服务器应用程序模板:

现有项目:

我还发现“添加剃刀页面…”上下文菜单仅在MS模板中可见。 但我在csproject和sln文件中找不到任何差异


我真的被这件事缠住了。你知道我遗漏了什么吗?

在Blazor模板项目中,你应该看到一个_Imports.razor文件,其中包含多个使用指令的

尝试将以下指令添加到MVC应用程序中的
Views\\u ViewImports.cshtml
文件中

@using Microsoft.AspNetCore.Components.Web
如果没有using指令,razor引擎不知道
@onclick
应该被解释为C代码,因此不会将事件处理程序连接为EXCETED。这也是VisualStudio没有将其突出显示为C#语法的原因

如果这有帮助,您可能还应该使用
指令将其他blazor相关的
@添加到
\u ViewImports.cshtml
文件中


不知道缺少的“添加-Razor页面…”,sry。

正如Andreas所说,您需要在文件夹(
视图
文件夹或您还原Razor组件的自定义文件夹)中添加一个新的
\u Imports.Razor
文件

_进口剃须刀:

@using Microsoft.AspNetCore.Components.Web
结构:

我还发现“添加剃刀页面…”上下文菜单仅在MS模板中可见,但在csproject或sln文件中找不到任何差异

MS模板使用
页面
文件夹,您可以看到
添加-Razor页面
选项

如果您使用的是Razor Pages项目,则会出现
添加-Razor页面
,因为您使用的是MVC,所以该选项不存在


如果您使用最新的vs 2019和asp.net core 3.0,您可以通过单击
Add-New Item-razor component
直接创建razor组件

将_Imports.razor添加到包含组件的文件夹中,这样做就成功了!