ASP.NET Core Blazor 入门Get started with ASP.NET Core Blazor

重要

Blazor WebAssembly 为预览版状态

ASP.NET Core 3.0 支持 Blazor Server。Blazor WebAssembly 在 ASP.NET Core 3.1 中为预览版。

Blazor 入门:

备注

使用 3.2 预览版 2 Blazor WebAssembly 模板时需要 .NET Core SDK 版本 3.1.102 或更高版本 。通过在命令行界面中运行 来确认所安装的 .NET Core SDK 版本。

  • 按照所选工具的指南进行操作:

1.安装 Visual Studio 2019 版本 16.4 或更高版本以及 ASP.NET 和 Web 开发工作负荷。

2.创建新项目。

3.选择“Blazor 应用” 。选择“下一步” 。

4.在“项目名称”字段提供项目名称,或接受默认项目名称 。确认“位置” 条目正确无误或为项目提供位置。选择“创建” 。

5.若要获得 Blazor WebAssembly 体验,请选择“Blazor WebAssembly 应用”模板 。若要获得 Blazor Server 体验,请选择“Blazor Server 应用”模板 。选择“创建” 。有关 Blazor ServerBlazor WebAssembly 这两个 Blazor 托管模型的信息,请参阅 。如果 Blazor WebAssembly 模板不存在,请返回上一步并重新安装模板。

6.按 Ctrl+F5 运行应用 。

备注

如果为 ASP.NET Core Blazor 之前的预览版本(预览版 6 或更早版本)安装了 Blazor Visual Studio 扩展,则可卸载该扩展。现在,在命令行界面中安装 Blazor 模板即可在 Visual Studio 中显示这些模板。

2.安装最新的 C# for Visual Studio Code 扩展

3.若要获得 Blazor WebAssembly 体验,请在命令行界面中执行以下命令:

  1. dotnet new blazorwasm -o WebApplication1

若要获得 Blazor Server 体验,请在命令行界面中执行以下命令:

  1. dotnet new blazorserver -o WebApplication1

有关 Blazor ServerBlazor WebAssembly 这两个 Blazor 托管模型的信息,请参阅 。

4.在 Visual Studio Code 中打开 WebApplication1 文件夹。

5.对于 Blazor Server 项目,IDE 要求添加资产用于生成和调试项目。选择 “是”

6.如果使用 Blazor Server 应用,请使用 Visual Studio Code 调试程序运行该应用。如果使用 Blazor WebAssembly 应用,请从应用的项目文件夹执行 dotnet run

7.在浏览器中导航到 https://localhost:5001

1.安装 。

2.选择“文件” > “新建解决方案”或创建“新项目” 。

3.在边栏中选择“.NET Core” > “应用” 。

4.选择“Blazor Server 应用”模板 。目前,Visual Studio for Mac 中仅提供 Blazor Server 模板。若要获得 Blazor WebAssembly 体验,请按照“.NET Core CLI”选项卡中的说明进行操作 。选择 Blazor Server 模板后,选择“下一步” 。有关 Blazor ServerBlazor WebAssembly 这两个 Blazor 托管模型的信息,请参阅 ASP.NET Core Blazor 托管模型

5.将“目标框架”设置为“.NET Core 3.1”,然后选择“下一步” 。

6.在“项目名称”字段中,将应用命名为 WebApplication1 。选择“创建” 。

7.选择“运行” > “运行而不调试”以不使用调试程序运行应用 。使用“开始调试”运行应用,以使用调试程序运行应用 。

如果出现信任开发证书的提示,请信任证书并继续操作。

若要获得 Blazor Server 体验,请在命令行界面中执行以下命令:

  1. dotnet new blazorserver -o WebApplication1
  2. cd WebApplication1
  3. dotnet run

有关 Blazor ServerBlazor WebAssembly 这两个 Blazor 托管模型的信息,请参阅 。

在浏览器中导航到 https://localhost:5001


侧栏中的选项卡提供多个页面:

  • Home
  • 计数器
  • 提取数据

在“计数器”页上,选择“单击我” 按钮,在不刷新页面的情况下增加计数器值。递增网页的计数器值通常需要编写 JavaScript,但借助 Blazor,可使用 C#。

Pages/Counter.razor

  1. @page "/counter"
  2. <p>Current count: @_currentCount</p>
  3. <button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
  4. @code {
  5. private int _currentCount = 0;
  6. private void IncrementCount()
  7. {
  8. _currentCount++;
  9. }

浏览器中针对 /counter 的请求(由顶部的 @page 指令指定)会导致 Counter 组件呈现其内容。组件呈现为呈现树的内存中表现形式,之后可使用它灵活高效地更新 UI。

每次选择“单击我”按钮时会出现以下情况 :

  • 触发 onclick 事件。
  • 调用 IncrementCount 方法。
  • 递增 currentCount 的值。
  • 再次呈现组件。

运行时将新内容与之前内容进行比较,且仅将已更改内容应用于文档对象模型 (DOM)。

使用 HTML 语法将组件添加到另一个组件。例如,通过将 <Counter /> 元素添加到 Index 组件,可将 Counter 组件添加到应用的主页。

Pages/Index.razor

运行应用。主页拥有其自己的计数器,该计数器由 Counter 组件提供。

组件参数使用特性或指定,允许在子组件上设置属性。若要将参数添加到 Counter 组件,请更新组件的 @code 块:

  • 使用 [Parameter] 特性为 IncrementAmount 添加公共属性。
  • 增加 currentCount 的值时,更改 IncrementCount 方法以使用 IncrementAmount

Pages/Counter.razor

  1. @page "/counter"
  2. <h1>Counter</h1>
  3. <p>Current count: @_currentCount</p>
  4. <button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
  5. @code {
  6. private int _currentCount = 0;
  7. [Parameter]
  8. public int IncrementAmount { get; set; } = 1;
  9. private void IncrementCount()
  10. {
  11. _currentCount += IncrementAmount;
  12. }
  13. }

使用特性在 Index 组件的 <Counter> 元素中指定 IncrementAmount

Pages/Index.razor

  1. @page "/"
  2. <h1>Hello, world!</h1>
  3. Welcome to your new app.
  4. <Counter IncrementAmount="10" />

生成首个 Blazor 应用

其他资源Additional resources