我刚刚安装了Visual Studio 2019(v16.4.3,立即更新为16.4.4)。我的系统上装有VS2017,但没有VS2019的早期版本。
我创建了一个新的Blazor应用项目。它会自动创建索引,计数器和其他页面。它创建了一个.NET Core 3.1应用程序(显然现在VS2019 v16.4和更高版本已自动安装了3.1版。)
我从字面上关注此“入门”页面:
我在运行应用程序时未对生成的内容进行任何更改。单击“计数器”页面上的按钮没有任何作用。我在“调试输出”窗口中看不到任何有任何关系的消息。
我进行了一些搜索,发现了类似问题的报告,但是解决方案似乎并不适用。
有什么想法吗? (当一个新生成的,未修改的项目不起作用时,这很烦人!)
“计数器”页面的代码生成为:
@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>
更新:
每个评论建议:
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。
答案 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 。