Asp .net core 入门教程笔记记录一
Asp .net core 入门教程笔记记录一
通过官网学习ASP.NET Core文档
Web应用之RaZor页面
版本Asp.net core 5.0
Vs2019
创建一个asp .net core 项目
项目结构:
Page文件夹:每一个Razor页面都是一对文件:
一个.cshtml文件,其中包含使用Razor语法的C#代码的HTML标记
一个.cshtml.cs文件,其中包含处理页面事件的C#代码
Wwwroot文件夹
包含一些静态资产,如HTML文件、JavaScript文件和css 文件
Appsetting.json
包含配置数据:如连接字符串。
Program.cs
包含应用的入口
Startup.cs
包含配置应用行为的代码
添加模型
将搭建“电影”模型的基架。 确切地说,基架工具将生成页面,用于对“电影”模型执行创建、读取、更新和删除 (CRUD) 操作。
- 在“解决方案资源管理器”中,右键单击“RazorPagesMovie”项目 >“添加” > “新建文件夹”。 将文件夹命名为“Models”。
- 右键单击“Models”文件夹。 选择“添加” > “类” 。 将类命名“Movie”。
- 向 Movie 类添加以下属性:
搭建模型的基架
- 创建“Pages/Movies”文件夹:
- 右键单击“Pages”文件夹 >“添加”>“新建文件夹”。
- 将文件夹命名为“Movies”。
- 右键单击“Pages/Movies”文件夹 >“添加”>“新搭建基架的项目”。
使用 EF 的迁移功能创建初始数据库架构
Add-Migration InitialCreate
Update-Database
Razor 页面派生自 PageModel。 按照约定,PageModel 派生的类称为 <PageName>Model。 此构造函数使用依赖关系注入将 RazorPagesMovieContext 添加到页面:
C#复制
public class IndexModel : PageModel
{
private readonly RazorPagesMovie.Data.RazorPagesMovieContext _context;
public IndexModel(RazorPagesMovie.Data.RazorPagesMovieContext context)
{
_context = context;
}
当 OnGet
返回 void
或 OnGetAsync
返回 Task
时,不使用任何返回语句。
当返回类型是 IActionResult
或 Task<IActionResult>
时,必须提供返回语句。
使用数据库
在 Startup.cs 的 ConfigureServices
方法中向依赖关系注入容器注册数据库上下文:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddDbContext<RazorPagesMovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext")));
}
在Program.cs中
var host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
SeedData.Initialize(services);
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred seeding the DB.");
}
}
host.Run();
- 从依赖注入容器中获取数据库上下文实例。
- 调用
seedData.Initialize
方法,并向其传递数据库上下文实例。 - Seed 方法完成时释放上下文。 using 语句将确保释放上下文。
var context = new RazorPagesMovieContext(
serviceProvider.GetRequiredService<
DbContextOptions<RazorPagesMovieContext>>())
根据文档自己慢慢操作搭建起该Demo发布在自己的iis服务器上
Demo运行地址:http://42.194.219.152:8022/Movies