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) 操作。

  1. 在“解决方案资源管理器”中,右键单击“RazorPagesMovie”项目 >“添加” > “新建文件夹”。 将文件夹命名为“Models”。
  2. 右键单击“Models”文件夹。 选择“添加” > “类” 。 将类命名“Movie”。
  3. 向 Movie 类添加以下属性:

 

搭建模型的基架

  1. 创建“Pages/Movies”文件夹:
    1. 右键单击“Pages”文件夹 >“添加”>“新建文件夹”。
    2. 将文件夹命名为“Movies”。
  2. 右键单击“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

 

posted @ 2021-01-30 13:47  寻找现实的感觉  阅读(148)  评论(0编辑  收藏  举报