本地预配向导和预配代理。
下载 Visual Studio 2022
如果愿意,你还可以参考教程的命令行接口版本以开始使用 Blazor。
在安装过程中,应选择“ASP.NET 和 Web 开发”工作负载(上面的安装链接已预先选择该选项)。
![]()
已有 Visual Studio 2022?
如果已有 Visual Studio 2022,则可以添加“ASP.NET 和 Web 开发”工作负载:
- 选择 Windows 徽标键,键入 Visual Studio 安装程序,然后按“输入”。
- 如果出现提示,则请允许安装程序进行自我更新。
- 如果 Visual Studio 2022 的更新可用,则将显示更新 按钮。选择该按钮以在修改安装前进行更新。
- 找到 Visual Studio 2022 安装并选择“修改”。
- 如果尚未选择,请选择“ASP.NET 和 Web 开发”工作负载并选择“修改”按钮。否则,只需关闭对话框窗口。
若要开始生成 .NET 应用,请下载并安装 .NET SDK (软件开发工具包)。
检查是否已正确安装所有内容
安装完成后,打开新的终端并运行以下命令:
如果安装成功,则应该会看到类似于以下内容的输出:
Command prompt
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
如果一切正常,请选择下面的 继续 按钮以转到下一步。
遇到错误?
如果收到“zsh: 命令未找到: dotnet”错误,请确保已打开新的终端窗口。如果无法解决问题,请使用“遇到问题”按钮获取解决问题的帮助。
如果收到 dotnet: 未找到命令错误,请确保已打开新的终端窗口。如果无法解决问题,请使用“遇到问题”按钮获取解决问题的帮助。
创建应用
-
启动 Visual Studio 并选择“创建新项目”。
![Visual Studio 提供四个入门选项,最后一个选项是“创建新项目”,以及我们要使用的一个选项]()
- 在“创建新项目”窗口中,在搜索框中键入 Blazor,然后按 Enter。
-
选择“Blazor Server 应用”模板并选择“下一步”。
![Visual Studio 新项目对话框,已选中 Blazor Server 应用]()
- 在“配置新项目”窗口中,输入 BlazorApp 作为项目名称,然后选择“下一步”。
-
在“其他信息”窗口中,如果尚未选择,则在“框架”下拉列表中选择“.NET 7.0 (标准期限支持)”,然后单击“继续”按钮。
![Visual Studio 附加信息对话框,在“框架”下拉列表中显示 .NET 7.0。]()
你的项目是在 Visual Studio 中创建和加载的。请使用解决方案资源管理器查看项目内容。
![解决方案资源管理器包含为项目创建的文件夹和文件的列表]()
已创建多个文件,以为你提供可运行的简单 Blazor 应用。
Program.cs
是启动服务器以及在其中配置应用服务和中间件的应用的入口点。
App.razor
为应用的根组件。
Pages
目录包含应用的一些示例网页。
BlazorApp.csproj
定义应用项目及其依赖项,且可以通过双击解决方案资源管理器中的 BlazorApp 项目节点进行查看。
Properties
目录中的 launchSettings.json
文件为本地开发环境定义不同的配置文件设置。创建项目时会自动分配端口号并将其保存在此文件上。
如果一切正常,请选择下面的 继续 按钮以转到下一步。
在终端中,运行以下命令来创建应用:
Terminal
dotnet new blazorserver -o BlazorApp --no-https -f net7.0
此命令创建新 Blazor 应用项目,并将其放置在当前位置内名为 BlazorApp
的新目录中。
导航到由上一条命令创建的新 BlazorApp
目录:
快速查看 BlazorApp
目录的内容。BlazorApp
目录中已经创建了多个文件,为你提供一个可以运行的简单的 Blazor 应用。
Program.cs
是启动服务器以及在其中配置应用服务和中间件的应用的入口点。
App.razor
为应用的根组件。
Pages
目录包含应用的一些示例网页。
BlazorApp.csproj
定义应用项目及其依赖项。
Properties
目录中的 launchSettings.json
文件为本地开发环境定义不同的配置文件设置。创建项目时会自动分配 5000-5300 之间的端口号并将其保存在此文件上。
请记下 BlazorApp
目录路径,因为教程后面会用到。
如果一切正常,请选择下面的 继续 按钮以转到下一步。
运行应用
单击 Visual Studio 调试工具栏中的“开始调试”按钮(绿色箭头)以运行应用。
![工具栏包含一个快捷方式按钮,可以执行通过菜单“调试|开始调试”(F5)提供的同一命令]()
应用运行后,可以通过单击“热重载”按钮将代码更改应用到正在运行的应用。
![工具栏包含一个快捷方式按钮,可以执行通过菜单“调试|热重载”(Alt + F10)提供的同一命令]()
可通过单击顶部工具栏中的“停止”按钮随时停止应用。
![工具栏包含一个快捷方式按钮,可以执行通过菜单“调试|停止调试”(Shift + F5)提供的同一命令]()
首次在 Visual Studio 中运行 Web 应用时,它将设置用于通过 HTTPS 托管应用的开发证书,然后提示你信任该证书。建议同意信任该证书。证书将仅用于本地开发,如果没有证书,大多数浏览器都会对网站的安全性进行投诉。
等待应用在浏览器中启动。转到以下页面后,你已成功运行第一个 Blazor 应用!
在终端中,运行以下命令:
dotnet watch
命令将生成并启动应用,然后在每次更改代码时更新应用。可以选择Ctrl+C,以随时停止应用。
等待应用显示正在侦听 http://localhost:<port number> 并等待浏览器在该地址启动。
等待应用显示正在侦听 http://localhost:<port number>,然后打开浏览器并导航到该地址。在此示例中,dotnet watch
显示它正在侦听 http://localhost:7178
。
转到以下页面后,你已成功运行了第一个 Blazor 应用!
![站点主页包含一些文本,并在左侧显示了多个选项卡,供你点击和浏览。]()
显示的页面由位于 Pages
目录内的 Index.razor
文件定义。其内容如下所示:
Pages/Index.razor
@page "/"
<PageTitle>Index</PageTitle>
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
它已包含将其设置为主页并显示文本 Hello, world!
和 Welcome to your new app
的代码。它还包含一个 SurveyPrompt
组件,可呈现指向 Blazor 反馈调查的链接。
遇到错误?
如果收到错误消息“你的连接不是专用的”,错误代码为 NET::ERR_CERT_INVALID,请尝试重新启动所有浏览器窗口,以便浏览器可以选取新证书,然后再次运行应用程序。
如果无法解决遇到的问题,请选择下面的 我遇到了问题 按钮,以获取解决问题的帮助。
试用计数器
在正在运行的应用中,通过单击左侧边栏中的“计数器”选项卡导航到“计数器”页。然后应显示以下页面:
![“计数器”页提供“单击我”按钮,用于增加页面上显示的计数。]()
选择“单击我”按钮,在不刷新页面的情况下递增计数。若要在网页中递增计数器,通常需要编写 JavaScript,但对于 Blazor,你可以使用 C#。
可以在 Pages
目录内的 Counter.razor
文件处找到 Counter
组件的实现。
Pages/Counter.razor
@page "/counter"
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
在浏览器中对于 /counter
的请求(由位于顶部的 @page
指令指定)导致 Counter
组件呈现其内容。
每次选中“单击我”按钮时:
- 已触发
onclick
事件。
- 调用
IncrementCount
方法。
currentCount
为递增。
- 呈现该组件以显示更新的计数。
添加组件
每个 razor 文件都会定义一个可重复使用的 UI 组件。
在 Visual Studio 中打开 Index.razor
文件。Index.razor
文件已存在,并且是在创建项目时创建的。它位于之前创建的 BlazorApp
目录中的 Pages
文件夹中。
在选择的文本编辑器中打开 Index.razor
文件。Index.razor
文件已经存在,它是在你运行 dotnet new
命令时创建的。它位于之前创建的 BlazorApp
目录内的 Pages
文件夹中。
通过在 Index.razor
文件末尾添加 <Counter />
元素,向应用主页添加 Counter
。
Pages/Index.razor
@page "/"
<PageTitle>Index</PageTitle>
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<Counter />
单击“热重载”按钮,以将更改应用到正在运行的应用。然后 Counter
组件将出现在主页上。
保存此更改后,dotnet watch
命令会将更改应用到正在运行的应用,以便主页上显示 Counter
组件。
![现在,主页包含显示计数和按钮的“计数器”。]()
修改组件
组件参数使用特性或子内容指定,这允许在子组件上设置属性。在 Counter
组件上定义参数,以指定每次点击按钮时的增量:
- 使用
[Parameter]
属性为 IncrementAmount
添加公共属性。
- 将
IncrementCount
方法更改为在递增 currentCount
值时使用 IncrementAmount
。
下面的代码演示了怎样实现此目的。突出显示的行显示更改。
Pages/Counter.razor
@page "/counter"
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
[Parameter]
public int IncrementAmount { get; set; } = 1;
private void IncrementCount()
{
currentCount += IncrementAmount;
}
}
在 Index.razor
中,更新 <Counter>
元素以添加IncrementAmount
属性,该属性会将增量更改为 10,如以下代码中突出显示的行所示:
Pages/Index.razor
@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<Counter IncrementAmount="10" />
通过单击“热重载”按钮将更改应用与应用。Index
组件现在具有自己的计数器,每次选择“单击我”按钮时,该计数器会递增 10,如下图所示。/counter
处的 Counter
组件(Counter.razor
)将继续按 1 递增。
Index
组件现在具有自己的计数器,每次选择“Click me”按钮时,该计数器会递增 10,如下图所示。/counter
处的 Counter
组件(Counter.razor
)会继续递增 1。
![当前,主页包含以 10 递增的计数器,显示计数器为 40。]()