Core 3.1 Blazor应用程序中的onclick无法正常工作

时间:2020-02-06 22:04:41

标签: asp.net-core onclick blazor

我刚刚安装了Visual Studio 2019(v16.4.3,立即更新为16.4.4)。我的系统上装有VS2017,但没有VS2019的早期版本。

我创建了一个新的Blazor应用项目。它会自动创建索引,计数器和其他页面。它创建了一个.NET Core 3.1应用程序(显然现在VS2019 v16.4和更高版本已自动安装了3.1版。)

我从字面上关注此“入门”页面:

https://docs.microsoft.com/en-us/aspnet/core/blazor/get-started?view=aspnetcore-3.1&tabs=visual-studio

我在运行应用程序时未对生成的内容进行任何更改。单击“计数器”页面上的按钮没有任何作用。我在“调试输出”窗口中看不到任何有任何关系的消息。

我进行了一些搜索,发现了类似问题的报告,但是解决方案似乎并不适用。

有什么想法吗? (当一个新生成的,未修改的项目不起作用时,这很烦人!)

“计数器”页面的代码生成为:

@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

_Host.cshtml是:

@page "/"
@namespace ToDoList.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    Layout = null;
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>ToDoList</title>
    <base href="~/" />
    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
    <link href="css/site.css" rel="stylesheet" />
</head>
<body>
    <app>
        <component type="typeof(App)" render-mode="ServerPrerendered" />
    </app>

    <div id="blazor-error-ui">
        <environment include="Staging,Production">
            An error has occurred. This application may no longer respond until reloaded.
        </environment>
        <environment include="Development">
            An unhandled exception has occurred. See browser dev tools for details.
        </environment>
        <a href="" class="reload">Reload</a>
        <a class="dismiss">?</a>
    </div>

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

更新:

每个评论建议:

  • 我重新启动了计算机
  • 直接进入VS2019,并创建了一个新项目。选定的Blazor应用程序。接受所有默认值。因此,最终完成了一个名为BlazorApp1的项目。
  • 点击F5来启动它。结果相同。点击“点击我”按钮,计数器不会执行任何操作。

BlazorApp1.csproj的全部内容:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

请注意,我遵循的“入门”链接专门说要使用.NET Core 3.1(vs 2.1)。它说可以可选地更新到3.2预览,但这仅在我想执行Blazor WebAssembly时才需要(我不需要)。我宁愿只在系统上发布代码,所以我不想将本应与3.1兼容的东西更新到3.2 Preview。

2 个答案:

答案 0 :(得分:3)

VS2019默认在Internet Explorer中启动该应用。

我将其更改为在Edge中启动。它可以在Edge中使用。

最终更新:

我知道它可以在IE11中使用。为此:

我从此处下载了Daddoon Blazor Polyfill软件包:

https://github.com/Daddoon/Blazor.Polyfill

从下载的zip文件中,我将Publish \ Blazor.Polyfill.Publish \ blazor.polyfill.min.js复制到我创建的子文件夹中,该子文件夹位于项目文件夹中wwwroot子文件夹下,名为“ js”。即在ToDoList \ wwwroot中,我创建了一个名为“ js”的子文件夹,然后将blazor.polyfill.min.js文件复制到该子文件夹中。

然后,我编辑了_Host.cshtml文件。我在此处添加了第一行(由VS和Blazor Server模板生成的第二行之前已经存在):

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

我发现了一堆说“使用Polyfills”的东西,但是我找不到任何说“这是您实际的操作方式”的东西。因此,希望这对其他人有帮助。另外,如果我以次优的方式做某事,希望有人会看到并告诉我如何做得更好。

答案 1 :(得分:0)

我遇到了同样的问题

要解决此问题,请转至项目的属性 >> Debug >>取消选中启用SSL 。然后通过点击例如 IIS Express