ASP.NET Core入门系列教程
微软把这个新的框架叫:Razor Pages,以下文中我们将频繁提及—Razor Pages。
项目目录结构
wwwroot静态资源文件夹
首先,Razor Pages项目中多了一个wwwroot的文件夹,这个文件夹中,主要存放网站的静态资源,如:
css:网站样式文件
images:网站图片资源文件
js:网站javascript脚本文件
lib:每三方的js库等
favicon.ico: 网站的图标
其次,Razor Pages项目中,没有了Global.asax以及Web.config这样的文件,但多了几个其他主要的文件,它们分别为:
appsetting.json
appsetting.json:应用程序配置文件,类似于ASP.NET应用程序中的Web.config配置文件。
Program.cs
Program.cs:这是.NET Core的程序入口文件,其他包含了一个程序的入口方法:public static void Main(string[] args)
Startup.cs
Startup.cs: .NET Core应用程序启动配置项目文件,在.NET Core CLI命令行工具或者Visual Studio为我们创建好ASP.NET Core应用程序之后,程序入口文件Program.cs会默认调用Startup.cs类中的ConfigureServices 和 Configure 方法,以初始化程序的各种配置。
Pages 文件夹
Pages目录为默认文档路径,这是 Razor Pages项目中的约定,对于 /Home/Index 这个页面来说,它对应的是 Pages 文件夹中的 Index.cshtml 这个视图文件。其中,我们还看到一个 Index.cshtml.cs 的文件,这个文件是用来后端编码的,类似于我们传统 Webform 中的 .aspx.cs 文件。
母版页与启动页
_ViewStart.cshtml
_ViewStart.cshtml 是整个项目页面渲染的启动视图,我们可以在此视图中指定项目的默认视图母版页面是哪个。
_Layout.cshtml
_Layout.cshtml 是整个Razor Pages 项目的默认母版页,如果项目中存在 _Layout.cshtml 这个视图母版页,则在页面没有特别指定 Layout属性的情况下,会调用此母版页。
_ViewImports.cshtml
_ViewImports.cshtml 用于导入项目或者子视图文件夹中的默认资源,以方便统一维护和管理等。
Razor 语法
Razor 支持 C#,并使用 @ 符号从 HTML 转换为 C#。 Razor 计算 C# 表达式,并将它们呈现在 HTML 输出中。当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记。 否则会转换为纯 C#。
数据库
1、Models文件夹。在弹出菜单中选择,添加-->类。类名为Hello
using System;
namespace RazorHello.Models
{
public class Hello
{
public int ID { get; set; }
public string Name { get; set; }
}
}
2、Models文件夹中添加HelloContext.cs类,继承自DbContext,操作方式如上第2点中的图所示,代码如下:
using Microsoft.EntityFrameworkCore;
namespace RazorHello.Models
{
public class HelloContext:DbContext
{
public HelloContext(DbContextOptions<HelloContext> options): base(options)
{
}
public DbSet<Hello> Hello { get; set; }
}
}
3、数据库上下文(DbContext)是在startup.cs文件的configureservices方法中向依赖关系注入容器注册,代码如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Model.TEST>(options =>options.UseSqlServer(Configuration.GetConnectionString("DbContext")));
services.AddMvc();
}
4、ASP.NET Core 配置系统会读取数据库连接字符串。 为了进行本地开发,它会从 Appsettings.json 文件获取数据库连接字符串,数据库连接配置如下:
"ConnectionStrings": {
"DbContext": "Server=.\\sqlexpress;Database=CustomDB;Trusted_Connection=True;MultipleActiveResultSets=true"
}
5、保存数据
using Microsoft.AspNetCore.Mvc.RazorPages;
using System;
namespace AppDbContext
{
public class CreateModel : PageModel
{
private readonly AppDbContext _db;
public CreateModel(AppDbContext db)
{
_db = db;
}
[BindProperty]
public Model.Hello model { get; set; }
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_db.Customers.Add(model);
await _db.SaveChangesAsync();
}
}
}
ASP.NET Core入门系列教程的更多相关文章
- ASP.NET MVC 入门系列教程
ASP.NET MVC 入门系列教程 博客园ASP.NET MVC 技术专题 http://kb.cnblogs.com/zt/mvc/ 一个居于ASP.NET MVC Beta的系列入门文章,有朋友 ...
- 转载: ASP.NET Core入门系列文章
今天在网上发现了ithome上的asp.net core 系列文章,对于新手入门还不错,这里转载一下,也方便查阅. [Day01] 從頭開始 [Day02] 程式生命週期 (Application L ...
- ASP.NET Identity入门系列教程(一) 初识Identity
摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验证(Authentic ...
- CentOS开发ASP.NET Core入门教程
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...
- ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...
- ASP.NET CORE 入门教程(附源码)
ASP.NET CORE 入门教程 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
随机推荐
- 设计模式【转自JackFrost的博客】
首先,感谢作者对知识的分享 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使代码编制真正工程化,是软件工程的基石脉络,如同大厦的结构一样. 文章结构:1.单一职责原则( ...
- 获取table行列
var table =document.getElementById("add_purchaseOrderDetailList_table"); var rows = table. ...
- 依赖注入与Unity
关于控制反转(Inversion of Control)和依赖注入(Dependency Injection)大家网上可以找下相关概念,在<小菜学习设计模式(五)-控制反转(Ioc)>这篇 ...
- sql 根据日期模糊查询&SQL Server dateTime类型 模糊查询
曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm: ...
- hdu 1258 从n个数中找和为t的组合 (DFS)
题意:首先给你一个t,然后是n,后面输入n个数,然后让你求的是n个数中和为t的序列总共有多少种,把他们按从左到右的顺序输出来. Sample Input4 6 4 3 2 2 1 15 3 2 1 1 ...
- HDU 1029 某个数出现的次数大于等于(N+1)/2的是哪个 map水题
题意:输入n个数 n为奇数 问某个数出现的次数大于等于(N+1)/2的是 哪个 输出来Sample Input51 3 2 3 3111 1 1 1 1 5 5 5 5 5 571 1 1 1 1 1 ...
- HDU4686 Arc of Dream 矩阵
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU4686 题意概括 a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1* ...
- Vijos1906 联合权值 NOIP2014Day1T2 树形动态规划
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - Vijos1906 题意概括 有一棵树,每一个节点都有一个权值w[i].下面说的x,y都是该树中的节点. 对于 ...
- 【Java】 剑指offer(62) 圆圈中最后剩下的数字
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每 ...
- 最全Python爬虫总结(转载)
[html] view plain copy 最近总是要爬取一些东西,索性就把Python爬虫的相关内容都总结起来了,自己多动手还是好. (1)普通的内容爬取(2)保存爬取的图片/视频和文件和网页(3 ...