在目前B/S盛行的时代,本文将通过创建一个.NET Core Web模板的方式来带领大家进入.NET6开发的大门。
1. 创建.NET Core Web应用
1.1 打开Visual Studio(不同版本VS可能创建新项目所在位置不同),单击创建新项目。
1.2 选择C#语言和Web平台,在下面的项目中选中ASP.NET Core Web应用(模型-试图-控制器)后,单击下一步。
PS:该处作者选择的为包含示例的Web应用。
1.3 输入项目名称并选择项目要存放的位置后单击下一步。
1.4 框架选择.NET 6.0。根据需要勾选配置HTTPS(H)和启用Docker(E)。单击创建。
PS:该处作者并未勾选配置HTTPS和启用Docker。
2. .NET Core Web应用结构
创建好Web应用后将进入到项目界面。
2.1 DemoWeb项目为刚刚从创建的Web应用。
2.2 Properties——launchSettings.json 启动配置文件
{
"iisSettings": { //IIS配置
"windowsAuthentication": false, //IIS是否启用 Windows 身份验证
"anonymousAuthentication": true, //IIS是否启用匿名身份验证
"iisExpress": {
"applicationUrl": "http://localhost:45024", //指定 IIS 服务器的地址
"sslPort": 0 //指定IIS 服务器的https端口
}
},
"profiles": { //运行的方式,可配置多个环境
"DemoWeb": {
"commandName": "Project",
"dotnetRunMessages": true, //是否在运行时给予反馈信息
"launchBrowser": true, //表示应用程序的时候是否自动启动浏览器
"applicationUrl": "http://localhost:5204", //应用程序采用的URL列表,多个URL之间采用分号(“;”)进行分隔。
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" //环境变量(用来表示当前的部署环境)
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
2.3 wwwroot——用于存放web访问的静态资源文件
2.4 Controller——MVC中的C。控制器。——>业务逻辑层。
Models——MVC中的M。模型。——>数据访问层。
Views——MVC中的V。视图。——>UI展示层。
2.5 appsettings.json
该文件下面会存在多个环境变量的配置。
当launchSettings.json中ASPNETCORE_ENVIRONMENT值为Development时会使用
appsettings.Development.json。其他配置同理,修改ASPNETCORE_ENVIRONMENT将读取不同环境的json。
2.6 Program.cs
//WebApplication为整个Web应用程序
//CreateBuilder()方法创建一个WebApplicationBuilder 对象
var builder = WebApplication.CreateBuilder(args);
//添加服务。可通过builder.Services.AddXXX的方式添加想要添加的服务
// Add services to the container.
builder.Services.AddControllersWithViews();
//构造一个 WebApplication 实例
var app = builder.Build();
//app.Environment用来获取当前Web应用程序的环境变量
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
}
//启用静态文件中间件,加上这行代码后, 我们在浏览器中才能访问 wwwroot 目录下的文件,否则会报错
app.UseStaticFiles();
//启用路由中间件
app.UseRouting();
//启用权限验证中间件,当我们的网站是基于身份认证的话需要用到
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
3..NET Core Web中的MVC简单介绍
3.1 以下代码为Controllers目录下的HomeController.cs文件中的代码
using DemoWeb.Models;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
namespace DemoWeb.Controllers
{
/// <summary>
/// MVC中的控制器需继承Controller
/// </summary>
public class HomeController : Controller
{
/// <summary>
/// ILogger微软自带的日志服务
/// </summary>
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
//实例化日志服务
_logger = logger;
}
/// <summary>
/// Index视图主方法——>Views/Home/Index.cshtml
/// </summary>
public IActionResult Index()
{
return View();
}
/// <summary>
/// Privacy视图主方法——>Views/Home/Privacy.cshtml
/// </summary>
public IActionResult Privacy()
{
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
3.1 在Program.cs中通过默认路由设置默认启动页面
//设置默认路由:pattern参数表示默认访问Home控制器下的Index Action所对应的页面
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
按F5运行项目后效果如图:
修改设置默认启动页面,代码如下:
//设置默认路由:pattern参数表示默认访问Home控制器下的Index Action所对应的页面
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Privacy}/{id?}");
修改后运行效果如图:
3.2 Model
ErrorViewModel类中定义了RequestId、ShowRequestId两个字段。
namespace DemoWeb.Models
{
public class ErrorViewModel
{
public string? RequestId { get; set; }
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
}
}
ErrorViewModel类在Controller中使用如下(注意要先引用Modedls的命名空间。例:using Models):
using DemoWeb.Models;
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
ErrorViewModel类在Views中使用如下:
1).@model ErrorViewModel——>表示指定ErrorViewModel模型。
2).通过Model来访问该模型。例:@Model.RequestId
@model ErrorViewModel
@{
ViewData["Title"] = "Error";
}
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
以上代码实现效果如图:
3.3 Views
Views中的结构如下:
每个Controller会对应Views下的一个文件夹(除Shared)。Controller中的每个视图Action则对应文件夹下的xxx.cshtml。
Views/Shared
_Layout.cshtml——>母版页
在该页面中存在@RenderBody()占位符,表示要显示的内容。
Views/_ViewImports.cshtml
该页面为全局引用文件。需要在页面添加命名空间时,统一放到该页面处理。
Views/_ViewStart.cshtml
该页面中指定母版页。代码如下(该代码表示指定Shared下的_Layout.cshtml页面为母版页):
@{
Layout = "_Layout";
}
该章节大致介绍了如何创建一个.NET6框架下的Web项目,以及使用模板创建的项目结构,后续将详细介绍.NET Core Web中的其他内容。文章来源:https://www.toymoban.com/news/detail-521507.html
观众老爷们,山水有相逢,咱们下期再会。文章来源地址https://www.toymoban.com/news/detail-521507.html
到了这里,关于.NET6入门:2.使用模板创建.NET Core Web的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!