Razor页面与ASP.NET MVC开发使用的视图组件非常相似,它们具有所有相同的语法和功能。

最关键的区别是模型和控制器代码也包含在Razor页面中。它更像是一个MVVM(Model-View-ViewModel)框架,它支持双向数据绑定,更简单的开发体验,具有独立的关注点。

您可以认为Razor页面是WebForms的演变。

https://www.cnblogs.com/tdfblog/p/asp-net-razor-pages-vs-mvc.html

ASP.NET Core 和 Entity Framework Core

使用依赖注入注册上下文

using ContosoUniversity.Data;
using Microsoft.EntityFrameworkCore;
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddMvc();
}

打开appsettings.json文件并添加连接字符串

{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ContosoUniversity1;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}

ASP.NET Core Razor 页面路由,更改默认的根文件夹

public void ConfigureServices(IServiceCollection services)
{
services
.AddMvc().
AddRazorPagesOptions(options => {
options.RootDirectory = "/Content";
});
}

如果您使用的是PageModel,那么是这样实现的:

using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering;

namespace RazorPages.Pages
{
public class ProductModel : PageModel
{
public int Id { get; set; }
public void OnGet(int id)
{
Id = id;
}
}
}
@page "{id}"
@model ProductModel
<p>The Id is @Model.Id</p>
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/extras/products", "product");
});
}
context.Response.ContentType = "text/html";
await context.Response.SendFileAsync($@"{env.WebRootPath}/errors/500.html");

支持的操作系统

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-2.1&tabs=aspnetcore2x#common-errors

IIS部署问题 HTTP Error 502.5 - Process Failure
下载.net framework 4.6.1安装包

已禁用 CoreWebEngine 或 W3SVC 服务器功能

(W3SVC 服务器功能)找到World Wide Web Publishing Service服务项是禁用

安装ASP.NET Core 模块

https://www.microsoft.com/net/download

安装.NET SDK

https://www.microsoft.com/net/download/dotnet-core/2.0

测试是否安装成功

基础知识:什么是ASP.NET Razor页面?的更多相关文章

  1. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  2. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  3. 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  4. ASP.NET Core Razor页面 vs MVC

    作为.NET Core 2.0发行版的一部分,还有一些ASP.NET的更新.其中之一是添加了一个新的Web框架来创建"页面",而不需要复杂的ASP.NET MVC.新的Razor页 ...

  5. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  6. ASP.NET中的C#基础知识

    ASP.NET中的C#基础知识 说明:asp.net作为一种开发框架现在已经广为应用,其开发的基础除了前端的html.css.JavaScript等后端最重要的语言支持还是C#,下面将主要用到的基础知 ...

  7. Asp.net MVC4高级编程学习笔记-视图学习第三课Razor页面布局20171010

    Razor页面布局 1)  在布局模板页中使用@RenderBody标记来渲染主要内容.比如很多web页面说头部和尾部相同,中间内容部分使用@RenderBody来显示不同的页面内容. 2)  在布局 ...

  8. 小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据

    跟同事合作前后端分离项目,自己对 WebApi 的很多知识不够全,虽说不必要学全栈,可是也要了解基础知识,才能合理设计接口.API,方便与前端交接. 晚上回到宿舍后,对 WebApi 的知识查漏补缺, ...

  9. ASP.NET CORE 基础知识(一):概述【下】

    此为系列文章,对MSDN ASP.NET Core 的官方文档进行系统学习与翻译.其中或许会添加本人对 ASP.NET Core 的浅显理解 配置 ASP.NET Core提供了一个配置框架,其能够从 ...

随机推荐

  1. Python3-RabbitMQ 3.7.2学习——Hello World(二)

    RabbitMQ环境搭建好了,接下来就是学习编程的入门级hello world. 在运行程序前,要先确保开启RabbitMQ服务 然后安装pika,命令:pip install pika 1.创建一个 ...

  2. Java获取当前时间的年月日方法

    package com.ob; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util ...

  3. springMVC3学习--ModelAndView对象(转)

    原文链接:springMVC3学习(二)--ModelAndView对象 当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherS ...

  4. Zookeeper笔记(一)初识Zookeeper

    为什么需要Zookeeper Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master选举 ...

  5. 解决python中遇到的乱码问题

    1. 解决中文乱码的一种可行方法 # -*- coding:utf-8 -*- from __future__ import unicode_literals import chardet def s ...

  6. BZOJ4993 [Usaco2017 Feb]Why Did the Cow Cross the Road II 动态规划 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4993 题意概括 有上下两行长度为 n 的数字序列 A 和序列 B,都是 1 到 n 的排列,若 a ...

  7. Trident简介

    1.引入 0.7版本:多条记录封装成批量,引入事务控制. 0.9版本:丢弃事务API,开始基于Storm之上的框架. 2.介绍 3.批次划分与事务实现 二:事务管理 4.事务处理机制 不透明事务:增加 ...

  8. MQ确认机制之事务机制------tx

    一:介绍 1.介绍 在前面的说的模式中会出现一个问题. 就是生产者将消息发送出去到底有没有到达rabbitMq,默认情况下是不知道. 有两种解决方式. AMQP实现事务机制 Confirm机制. 这里 ...

  9. 090实战 Hadoop离线项目介绍(不包括程序)

    一:项目场景 1.需求分析 根据用户行为数据进行程序的处理,得到结果保存到关系型数据库中 需要收集用户(系统使用者)在不同客户端上产生的用户行为数据,最终保存到hdfs上 需要明确收集字段的相关信息, ...

  10. 002.Heartbeat部署及httpd高可用

    一 前期准备 1.1 依赖准备 编译安装需要依赖的包,如gcc等: yum -y install gcc gcc-c++ make glibc kernel-devel kernel-headers ...