了解 Blazor Server App 项目结构

在本文中,你将获得以下问题的答案

  • 先决条件
  • 如何创建 Blazor Server App 项目?
  • Blazor Server 应用程序的项目结构是什么样的?
  • 每个默认文件夹有什么用
  • 如何设置启动razor组件或页面运行?

先决条件

  • HTML、CSS 和 Javascript 的基本知识。
  • Visual Studio Community 2019 / 2022。本文使用 VS Community 2022。

如何创建 Blazor Server App 项目?

  • 启动 VS 社区 2022
  • 点击文件 -> 新建 -> 项目

  • 选择Blazor Server App,点击右下角的“下一步”按钮。

  • 给出项目名称
  • 您想要管理项目的位置。
  • 您想要的解决方案名称
  • 单击“下一步”按钮进入下一个屏幕。

  • 选择您想要的框架。
  • 认证类型模式
  • 配置 HTTPS
  • 启用 Docker:需要安装 DOCKER 才能运行。
  • 点击“创建”按钮创建一个项目,以下屏幕截图为示例。

  • 按 F5 运行项目,浏览器上将出现以下输出。

Blazor Server 应用程序的项目结构是什么样的?

在深入了解项目结构的细节之前,请参考解决方案资源管理器的整体屏幕截图,即项目结构基本视图。


(解决方案资源管理器-项目结构基本视图)

默认有7个主节点和4个主文件。

主要 7 个节点如下

  1. 连接服务
  2. 依赖项
  3. 特性
  4. 網站根
  5. 数据
  6. 页面
  7. 共享

连接服务:您可以根据项目需求添加服务的点。

连接服务的类型

有两种类型的连接服务

  • 服务依赖关系
  • 服务参考

按照您所看到的屏幕,右键单击“连接的服务”选项。

单击添加选项

您可以看到上面的屏幕截图,其中连接的服务已轻松添加到项目中。

例子

  • Azure 存储
  • Azure 应用程序

ETC

  1. 点击“管理连接服务”


2. 添加服务依赖关系。

3. 添加服务引用。

4. 依赖项:您添加和删除类库、COM NuGet 包等…对您的项目的引用。
5. 右键单击“DEPENDENCIES”节点,您可以看到屏幕上出现以下选项。

依赖项有两种选择

  • 分析器:分析器是帮助提高代码质量的强大工具。您可以启用或禁用分析器。
  • 框架:您看到的框架的基本库列表。

特性

此文件夹有一个名为 launchSettings.json 的 JSON 配置文件。此文件包含所有必要的应用程序启动设置。默认情况下,该文件有三个主要 JSON 组。

  • iis 设置
  • 个人资料
  • IIS 快讯

launchSetting.json 文件 JSON

{"iisSettings": {"windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": {"applicationUrl": "http://localhost:49428","sslPort": 44303}},"profiles": {"LearnBlazorServerApp": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"applicationUrl": "https://localhost:7137;http://localhost:5137","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}},"IIS Express": {"commandName": "IISExpress","launchBrowser": true,"environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}}}
}
  • WWWRoot:用于存储和管理所有静态文件(如引导程序、图像、JS 文件)的特殊位置。

  • 您可以看到 WWWROOT 里面有一个子文件夹 CSS。里面有 Bootstrap 和 Open-iconic 文件夹。
  • 数据:此文件夹有两个类文件。
  • WeatherForecast.cs:普通的 C# 类文件。
  • WeatherForecastService.cs:具有 GetForecastAsync 方法的服务文件,该方法返回 WeatherForcast[] 数组。

页面

您可以看到有六 (6) 个文件。两种文件 - Razor Component (.Razor) 和 Razor View (.Cshtml)。

共享

_导入.razor

这是一个常见的位置,您可以在此维护通用命名空间,这样就无需一次又一次地声明命名空间。以下命名空间已在 _impory.razor 文件中默认定义。

@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using LearnBlazorServerApp
@using LearnBlazorServerApp.Shared

应用程序razor

应用程序的根组件。它使用路由器组件管理客户端路由。

应用程序设置.json

这是一个用于管理 JSON 格式的应用程序配置设置的专用文件。您可以管理数据库连接、AppSetting 变量、日志记录等设置。

{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*"
}

程序.cs

应用程序的入口点和运行设置如中间件和应用程序运行(app.run())。

如何设置启动razor组件或页面运行?

在运行新创建的项目时,您可以默认看到 INDEX.RAZOR 组件正在运行。


现在我希望计数器剃须刀组件在运行应用程序时默认运行。

Index.razor 代码

@page "/"
@page "/index"
<PageTitle>Index</PageTitle>
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
Now remove @page “/” from index.razor component and same way place on counter.razor component.

更新 Counter.razor 代码

@page "/"
@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++;}
}


要在 Blazor 中设置启动组件,只需将 @page”/”保留在第一行。

如果将@page“/”放在两个组件中,将会出现以下错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用任意浏览器远程访问本地搭建的Jellyfin影音平台

文章目录 前言1. Jellyfin服务网站搭建1.1 Jellyfin下载和安装1.2 Jellyfin网页测试 2.本地网页发布2.1 cpolar的安装和注册2.2 Cpolar云端设置2.3 Cpolar本地设置 3.公网访问测试4. 结语 前言 本文主要分享如何使用Windows电脑本地部署Jellyfin影音服务并结合cpolar内网穿透工…

如何在招聘中开始使用AI?

在人工智能时代&#xff0c;招聘团队面临着“用更少的钱做更多的事情”的压力&#xff1a;用更少的钱和更少的团队。根据一项调查&#xff0c;58%的受访者认为&#xff0c;“提高我们助教团队的效率&#xff0c;降低成本”是明年招聘职位的首要任务。在招聘中使用人工智能是提高…

【机器学习300问】119、什么是语言模型?

语言模型&#xff08;Language Models&#xff09;是自然语言处理&#xff08;NLP&#xff09;的重要组成部分&#xff0c;它的目的是量化一段文本或一个序列的概率。简单讲就是你给语言模型一个句子&#xff0c;它给你计算出特定语言中这个句子出现的概率。这样的概率度量可以…

【Netty】nio阻塞非阻塞Selector

阻塞VS非阻塞 阻塞 阻塞模式下&#xff0c;相关方法都会导致线程暂停。 ServerSocketChannel.accept() 会在没有建立连接的时候让线程暂停 SocketChannel.read()会在没有数据的时候让线程暂停。 阻塞的表现就是线程暂停了&#xff0c;暂停期间不会占用CPU&#xff0c;但线程…

Excel 常用技巧(四)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件&#xff0c;可以用来制作电子表格、完成许多复杂的数据运算&#xff0c;进行数据的分析和预测&#xff0c;并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

直播美颜SDK技术指南:实现实时美颜效果的算法方案

本篇文章&#xff0c;小编将探讨直播美颜SDK的技术实现和算法方案。 一、美颜技术概述 美颜技术通过一系列图像处理算法&#xff0c;实时美颜效果可以在视频直播过程中实时呈现&#xff0c;提升用户的直播体验。为了实现这些效果&#xff0c;需要结合图像处理和计算机视觉技术…

生产 的mybatisplus 日志输入到日志文件

默认是输出到控制台.不输出到日志文件 输出到日志文件.需要修改配置 第一步. logging:config: classpath:logback-wshoto.xml第二步 mybatis-plus:configuration:cache-enabled: truedefault-executor-type: reuselog-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl第三步…

别太小看“静态免杀“

0x01 简述 免杀总体来说可分为两种&#xff0c;静态免杀/动态免杀。往往来说&#xff0c;我们更注重于在内部代码层面实现一些免杀技巧&#xff0c;但在有些时候&#xff0c;动态免杀静态免杀以"打组合拳"的方式效果往往会更出人所料。 当我们的程序生成后&#xf…

Spring IOC 控制反转(注解版)

Spring IOC 控制反转 文章目录 Spring IOC 控制反转一、前言什么是控制反转&#xff08;IOC&#xff09;什么是依赖注入&#xff08;DI&#xff09; 二、介绍 IOC2.1 传统思想代码2.2 解决方案2.3 IOC思想代码2.4 IOC 使用&#xff08;Autowired依赖注入&#xff09;2.5 IOC 优…

从零开始学GeoServer源码(一)(搭建开发环境Win10+IDEA23.3.5+jdk11+geoserver2.24.x)

搭建开发环境 参考资料 0、基础环境准备0.1、idea0.2、jdk0.3、源码 1、导入工程2、配置启动环境2.1、打开新增配置面板2.2、配置工作目录2.2.1、从常用配置中选择2.2.2、直接粘贴 2.3最终效果 3、调整源码3.1、添加maven引用3.2、注释无效代码3.3、删除测试代码 4、修改运行端…

LeetCode esay mid 记录

1486. 数组异或操作 感觉一般也用不到 emmm 灵茶山艾府传送门 推导过程可以结合官网部分观看 重点由两部分的结合 将特定部分转换为常见部分 0到n的异或和表示 2595. 奇偶位数 0x555是十六进制数&#xff0c;转换为二进制为 0101 0101 0101 class Solution {public int[…

【面试 - 页面优化举例】页面跳转卡顿问题解决 - 页面跳转速度优化

目录 为何要优化如何优化优化1 - 懒加载优化2 - el-tree 子节点默认不展开 为何要优化 页面A跳转到也页面B时&#xff0c;页面出现卡顿情况&#xff1a; 【问题】页面A → 页面B时&#xff0c;页面B进入到了 created 钩子后过了六七秒才进入到 mounted 钩子&#xff1b;【分析经…

吉林省教育学院学报杂志社吉林省教育学院学报编辑部2024年第5期目录

“研培一体”理论与实践 教师培训管理共同体的职能定位与价值追求 张岩; 1-3 数字化转型背景下教师培训工作的发展路径 李春光; 4-6 挖掘数智潜能&#xff0c;推进教师培训融合创新 鲍赫; 7-9《吉林省教育学院学报》投稿&#xff1a;cn7kantougao163.com 精准培…

Apache DolphinScheduler查看版本信息

我找了半天&#xff0c;没有看到版本在哪里。然后我看配置&#xff0c;他要连接数据库&#xff0c;我去他存储数据库的表里面&#xff0c;看到了相关的版本信息。 cd /home/dolphinscheduler/dolphinscheduler/bin/env dolphinscheduler找到了里面的密码 版本是3.1.3

14.编写自动化测试(上)

标题 一、如何编写测试1.1 一些概念1.2 测试函数剖析1.3 使用assert!宏检查结果1.4 使用assert_eq!和assert_ne!宏来测试相等1&#xff09; assert_eq!2&#xff09; assert_ne! 1.5 使用 should_panic 检查 panic 二、将 Result<T, E> 用于测试 一、如何编写测试 1.1 一…

Windows defender bypass | 免杀

官方文档 在制作免杀的过程中,翻找 Windows 官方对 Windows Defender 的介绍,发现有这样一个目录:Configure Microsoft Defender Antivirus exclusions on Windows Server(在 Windows server 中配置defender排除项)。 https://docs.microsoft.com/en-us/microsoft-365/se…

N32G45XVL-STB之移植LVGL(8.4.0)

目录 概述 1 系统软硬件 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 认识LVGL 2.1 LVGL官网 2.2 下载V8.4.0 3 移植LVGL 3.1 硬件驱动实现 3.2 添加LVGL库文件 3.3 移植和硬件相关的代码 3.3.1 驱动接口相关文件介绍 3.3.2 重新接口函数 3…

视频合成渲染服务解决方案,数字人+PPT+视频云剪辑

在金融理财领域&#xff0c;一个生动、直观、专业的视频&#xff0c;往往能够在海量信息中脱颖而出&#xff0c;帮助客户更好地理解产品、把握市场动态。然而&#xff0c;传统的视频制作方式往往周期长、成本高、难以适应快速变化的市场需求。 美摄科技&#xff0c;作为行业领…

XZ后门故事:初始分析

2024年3月29日&#xff0c;Openwall OSS安全邮件列表上的一条消息“炸醒”了整个信息安全、开源和Linux社区&#xff1a;XZ出现了一个CVSS评分10.0的恶意后门。 这个后门库的特殊危险在于OpenSSH服务器进程sshd使用它。在多个基于systemd的发行版上&#xff08;包括Ubuntu、De…

从根源解决问题:构建体系化BOM管理机制与解决方案

BOM&#xff08;物料清单&#xff09;是设计与生产间的纽带&#xff0c;其准确及时对企业的竞争力至关重要。然而&#xff0c;维护BOM数据时&#xff0c;常遇到录入错误、信息孤岛及跨部门沟通障碍等难题&#xff0c;直接影响生产效率和成本。为此&#xff0c;道合顺将探讨确保…