我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇 Razor Pages介绍

    前言   要熟练使用Core平台开发项目,必先熟悉一种新的Webs页面即Razor Pages,Razor Pages是一种包含C#代码的web页面,服务后端包含Models,前端包含C#,相当于简化了Controllers的MVC Views页面。

  Razor Pages页面特点如下:
  1,文件名首位不能是下划线
  2,文件扩展名为.cshtml
  3,文件的第一行是 @page
  4,Razor代码块被@{ }包裹,内部为标准C#代码。
  5,PageModel,推荐使用页面模型,页面模型通过 @model 模型名称 引入页面中。

     学些目标:

  1,创建Razor Pages 项目、了解常用的Nuget包
  2,了解Razor Pages基本的页面组成
  3,与Sqlserver数据库交互完成CRUD操作
  4,Razor Pages搜索、验证等操作。

    准备工具:

  Vs2017以上的版本和Sqlserver2008以上版本

    一、创建Razor Pages

  在Vs中新建一个项目名称为RazorPages项目,项目类型选择“Asp.Net Core Webs应用”,目标框架选择“.Net Core 3.1”。

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

 

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

 

 我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

  Core下基本的Razor Pages框架目录如下,页面默认在Pages文件夹里,wwwroot文件夹存储Css和Js页面样式文件,“appsettings.json”为生成部署文件,“Program.cs”中的main函数是主程序的入口,“Startup.cs”中配置Sql连接,路由注册服务等后面会详细讲到,(关注@高山流水学编程不迷路)

 Razor Pages页面内容格式如下:

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

    二、为Razor添加Models模型,模型类名称为UserData。操作步骤:右键点击解决方案“RazorPages”,添加Models文件夹,然后右键点击“Models”文件夹添加一个“UserData.cs”的类文件,如下图所示。

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace RazorPages.Models
{
    public class UserData
    {
        [Key, Column(Order = 1)]
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }
}

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

 

 

     三、使用Vs实体框架生成Razor页面(CRUD)   

  首先右键点击Pages文件夹,在它下面添加一个“Users”文件夹,右键点击“Users”,依次点击“添加”->“新搭建基架的项目”->"使用实体框架生成Razor Pages页面(CRUD)"

        我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

选择模型类

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

 

   注意在生成的结果中报错,提示缺少依赖的NuGet包可以点击通过右键点击“项目资源”,“”管理NuGet程序包”来添加。在右侧选择安装,安全前注意选择对应的版本,比如:Core3.1选择Sql数据包版本最好选择3.0,详细官网有介绍。

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

 

   常用的几个NuGet数据包如下:

    Microsoft.EntityFrameworkCore.SqlServer(选择版本:V3.0)   ==> Sqlserver数据库连接使用
    Microsoft.EntityFrameworkCore.Tool(选择版本:V3.0)            ==> 完成Sqlserver数据CRUD
    EntityFramework.SqlServerCompact (选择版本:V4.1)           ==> Sqlserver数据库操作和交互

      下面是非常重要的三步:一是在Startup.cs中注册如下ConfigureServices的服务(如果系统已生成,不用添加),二是在appsettings.json文件中添加Sqlserver数据库连接字符串。如下所示

       注意:Startup.cs中“GetConnectionString("MVCSqlContext")”方法名称与appsettings.json中的ConnectionStrings": {"MVCSqlContext": }名称一致。

public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();

            services.AddDbContext<RazorPagesContext>(options =>
                    options.UseSqlServer(Configuration.GetConnectionString("MVCSqlContext")));
        }
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "MVCSqlContext": "Server=localhost;Database=InfoUser;User ID=sa;Password=sa;"
  }
}

    第三步,在Startup.cs文件中添加Users路由路径

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using RazorPages.Data;

namespace RazorPages
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();

            services.AddDbContext<RazorPagesContext>(options =>
                    options.UseSqlServer(Configuration.GetConnectionString("MVCSqlContext")));
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }
}

 

 

生成解决方案后,点击“我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍”在浏览器中运行程序,在网址后面输入Users,运行节目如下:

我们一起来学习Asp.NET Core MVC 第二篇 Core基础篇  Razor Pages介绍

 

上一篇:ASP.NET Core中使用固定窗口限流


下一篇:5. ASP.NET MVC 中的Areas【区域】是什么