【问题标题】:Blazor Features missing in existing project现有项目中缺少 Blazor 功能
【发布时间】:2019-10-17 15:49:33
【问题描述】:

我已经开始在 VS 2019 中使用新的“Blazor Server App”项目模板,一切正常。 现在,我尝试在现有的 .NET Core 3 ASP.NET MVC 应用程序中使用一些 Blazor 的东西。 我添加了“.MapBlazorHub(); & .AddServerSideBlazor();”到启动类和

<script src="_framework/blazor.server.js"></script>

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

Microsoft Blazor 服务器应用模板:

现有项目:

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

我真的坚持这一点。有什么我想念的想法吗?

【问题讨论】:

    标签: c# asp.net-core blazor-server-side


    【解决方案1】:

    正如 Andreas 所说,您需要在文件夹中添加一个新的 _Imports.razor 文件(Views 文件夹或您恢复剃须刀组件的自定义文件夹。

    _Imports.razor:

    @using Microsoft.AspNetCore.Components.Web
    

    结构:

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

    MS 模板使用Pages 文件夹,您可以看到Add- Razor Page 选项。

    如果您使用的是 Razor Pages 项目,则会有Add- Razor Page,因为您使用的是 MVC,所以该选项不存在。

    如果你使用最新的vs 2019和asp.net core 3.0,你可以直接点击Add - New Item - Razor Component创建一个razor组件

    【讨论】:

    • 将 _Imports.razor 添加到包含组件的文件夹中就可以了!
    【解决方案2】:

    在 Blazor-Template-Project 中,您应该会看到一个 _Imports.razor 文件,其中包含多个 @using 指令。

    尝试将以下指令添加到 MVC 应用中的 Views\_ViewImports.cshtml 文件中。

    @using Microsoft.AspNetCore.Components.Web
    

    如果没有 using 指令,剃须刀引擎不知道 @onclick 应该被解释为 C# 代码,因此不会像预期的那样连接事件处理程序。这也是 VisualStudio 不将其突出显示为 C# 语法的原因。

    如果这有帮助,您可能还应该将其他与 blazor 相关的 @using 指令添加到 _ViewImports.cshtml 文件中。

    不知道缺少的“添加 - 剃刀页面...”,抱歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多