ASP.NET Core MVC 视频教程

零度最新推出的课程,总计100期,正在录制,每周更新,.NET Core 平台是微软的重大战略,众多公司已开始招聘 .NET Core 开发者,人才紧缺,薪水可观,如果您想全方位深度学习,该课程将尽可能满足您的需求,和第三方课程不同,该课程通过点线面从语言、平台、工具、框架和架构层面深度学习,深入浅出,在课程的后半部分,实践为主,将与您一起搭建基于 ASP.NET Core 的企业级开发框架。

在该系列视频教程的后半部分,零度将与您一起进入实战环节,使用 ASP.NET Core 技术搭建企业级开发框架,分析高质量的开源项目:ABP、nopCommerce、Orchard 和 eShopOnContainers 框架,寻求最佳实践,将优秀的设计思想和框架引入到零度跨平台微框架,创建可靠的企业级开发框架。

asp.net core mvc

第01期-.NET Core 平台技术体系介绍 (73分钟)

介绍微软.NET框架技术的演变,.NET Core 2.0 的技术架构,新增内容和改进,包、元包和框架,命令行工具的使用,在Visual Studio 2017 创建并生成完整的.NET Core解决方案。

第02期-.NET Core 程序的跨平台部署 (134分钟)

跨平台 .NET Core 程序介绍,Linux简介与入门,配置.NET Core环境,在Centos中生成 .NET Core 应用程序,打包程序集,绑定域名,上传与下载,配置Nugix反向代理,如何在Centos中部署 ASP.NET Core 网站应用程序。

第03期-零度微框架项目概述 (87分钟)

介绍零度微框架中存在的问题,解决方法,基于.NET Core 创建微框架解决方案,创建项目,并介绍微框架中的每个项目用途,VS中的多线程调试方法,.NET Core中的单元测试和VS中的 Live Unit Testing 功能。

第04期-ASP.NET Core 技术简介 (108分钟)

介绍 ASP.NET Core 技术,为何使用 ASP.NET Core 技术,通过命令行创建一个简单的应用程序, 研究Page模型和MVC模型, 基于Razor的视图引擎学习,LocalDB轻量级数据库介绍,演示基于ASP.NET Core的简单应用。

第05期-ASP.NET Core WebAPI 技术 (85分钟)

创建一个 ASP.NET Core WebAPI 项目,在 WebAPI 项目中使用 Entity Framework Core 进行数据访问,依赖注入 DbContext 数据上下文,连接字符串配置,数据库迁移与回滚,通过 Swashbuckle 生成 WebAPI 帮助文档。

第06期-管道&中间件&依赖注入 (92分钟)

ASP.NET Core 应用程序启动流程,中间件的作用与实现,配置服务与管道,通过 Startup 类 和 IStartupFilter 配置请求处理管道,依赖注入与生命周期。

第07期-深入研究中间件 (104分钟)

ASP.NET Core 中间件概述,使用 Run、Map 和 Use 方法配置请求管道,理解并设计自己的中间件,基于约定的中间件和基于工厂的中间件,中间件中的依赖注入与配置选项。

第08期-文件系统服务与路由 (113分钟)

静态文件访问,文件服务器,文件缓存,使用 PhysicalFile 设置文件权限, 启用目录浏览,默认文档设置。路由系统介绍,路由中间件与 MVC 中间件配置,默认路由规则映射方式。

第09期-使用路由中间件 (62分钟)

使用路由中间件,路由模板配置规则,路由约束配置,路由默认值设置,路由正则表达式,通过路由生成URL链接,通过 RouteHandler 处理默认路由,使用 RouteBuilder 生成路由表。

第10期-URL重定向与重写 (73分钟)

使用 URL 重写中间件,理解重定向与重写,永久重定向与临时重定向,简单重定向与重写设置,通过配置文件加载 ApacheModRewrite 规则,加载 IISUrlRewrite 规则,自定义规则配置。

第11期-使用多环境与配置文件 (117分钟)

系统环境变量,关于开发、测试和生产环境的配置,启动类和配置方法的约定。默认配置文件注入与读取,自定义 JSON 和 XML 配置文件,指定环境配置文件,添加内存字典配置,读取配置值与配置节的技巧。

第12期-配置选项与配置系统扩展 (80分钟)

基于选项的配置,通过委托配置简单选项,自选项配置,在控制器和视图中注入选项,基于名称的选项配置,创建 Entity Framework 扩展配置提供程序,将配置存储到数据库中。

第13期-日志记录与分卷 (89分钟)

将日志记录输出,使用微软内置的日志提供程序,添加日志提供程序,日志类别,日志级别,事件编号,消息模板,记录异常,日志筛选器,日志作用域,日志配置文件,使用第三方提供程序 NLog 记录日志,日志配置与智能提示,日志分卷。

第14期-日志异常与前端构建 (92分钟)

在 ASP.NET Core 中使用日志框架,使用 LoggerMessage 类提高日志记录性能,处理错误异常,开发人员异常页,配置自定义异常处理页,配置状态代码页,Node.js框架简介,在 Visual Studio 中安装 Node 模块,使用 Gulp 前端构建工具,合并与压缩文件,编写前端自动化任务,使用任务运行资源管理器管理并设置任务。

第15期-客户端开发技术 (88分钟)

编写 Grunt 自动化任务,包管理方案,使用 Bower 管理前端包,使用 Bootstrap 构建响应式站点,针对静态文件的捆绑和缩小,使用 BrowserLink 浏览器链接,在 .NET 中调用 Node.js 模块。

第16期-预编译与文件提供程序 (93分钟)

理解 CSS 预编译,了解 LESS 和 SASS 技术,在 Visual Studio 中使用 LESS 和 SASS,使用 Gulp 编写自动化预编译任务。认识文件系统,讲解 IFileProvider 文件提供程序,使用 IFileInfo 和 IDirectoryContents 访问文件目录内容,使用字节流读取文件,使用 PhysicalFileProvider、EmbeddedFileProvider 和 CompositeFileProvider 构建文件访问程序,文件路径统配模式。

第17期-主机与服务器配置 (67分钟)

ASP.NET Core 中的两种服务器实现,基于 Kestrel 和 HTTP.sys 的服务器配置,WEB主机和通用主机的区别,分别使用 WebHostBuilder 和 HostBuilder 构建服务主机,服务器的基本配置。

第18期-应用状态与会话 (98分钟)

HTTP 是无状态的协议,深入理解 Cookie 存储机制,深入 Session 状态维护,分布式缓存 Session 状态,使用 JSON 和 Protobuf 扩展 Session 序列化方案,使用 TempData 传递数据,使用查询字符串和隐藏域传数据,使用 HttpContext.Items 在中间件之间通信,使用缓存存储和检索数据,使用依赖注入存储对象。

第19期-全球化&本地化&多语言 (93分钟)

理解全球化与本地化,使用 IStringLocalizer 和 IHtmlLocalizer 将内容本地化,使用 IStringLocalizerFactory 工厂创建共享资源文件, 使用 IViewLocalizer 将视图本地化,使用 DataAnnotations 将模型验证本地化,资源文件与本地化的具体配置,本地化依赖注入,关于微软内置的 QueryStringRequestCultureProvider、CookieRequestCultureProvider 和 AcceptLanguageHeaderRequestCultureProvider 语言文化提供者的具体使用方法,通过写 Cookie 的方式设置语言文化。

第20期-全球化&本地化&多语言 (66分钟)

自定义 RequestCultureProvider 语言文化提供者,使用 RouteDataRequestCultureProvider 通过路由数据提供语言文化,定义 ASP.NET Core MVC 过滤器中间件,资源文件的命名与组织结构,区域性回退行为,通过 FromServicesAttribute 向 Action 依赖注入服务,Portable Object 可移植对象本地化,理解 PO 文件格式,使用 PO 文件编辑器,通过 OrchardCore.Localization.Core 组件实现 PO 文件的本地化与多语言。

第21期-请求第三方WebAPI接口 (89分钟)

HttpClient 客户端的基本用法,命名客户端,类型化客户端,在 ASP.NET Core 中集成 Refit 框架,通过 DelegatingHandler 实现处理程序中间件,集成 Polly 框架,提供全面恢复和临时故障处理方案。

第22期-实时通信与推送技术 (86分钟)

实时通信方案介绍,短轮询,长轮询,服务器发送事件(Server-Sent Events) 和 WebSocket 通信方案,在 ASP.NET Core 中使用 WebSocket 技术,实时通信 SignalR 技术解决方案,集线器,使用 SignalR 技术实现一个简单的群发聊天室。

第23期-SignalR实时通信与推送技术 (96分钟)

深入讲解 SignalR 中的 Hub 集线器,连接、用户和分组,连接与断开事件,分别向指定连接、用户和分组推送消息,在 MVC 控制器中通过 IHubContext 接口注入 Hub 集线器,在中间件中使用 Hub 集线器,使用 IUserIdProvider 接口自定义用户编号提供者,配置 CORS 跨域策略,基于 SignalR 推送技术的 JavaScript 客户端和 .NET 客户端。

第24期-SignalR实时通信与推送技术 (119分钟)

在 SignalR 中使用 JSON 协议和 MessagePack 协议,流式数据处理与推送,演示将超大文件通过数据流的方式推送至客户端,身份验证和授权,编写一个基于 Cookie 认证的 SignalR 服务端。

第25期-Razor页面与模型 (63分钟)

理解 Razor 页面引擎,在 ASP.NET Core 中使用 Razor 页面模型,关于 @page 指令的作用,引入 PageModel 页面模型,页面目录结构,通过一个简单的增删改查示例学习 Razor 页面模型。

第26期-Razor页面与模型 (81分钟)

Razor 页面布局、部分视图、模板和标记帮助程序,页面跳转,自定义路由,自定义页面存放目录,页面 Filter 过滤器,基于 .NET 标准类库与 .NET Core 类库区别,基于 Razor 页面的类库,通过 IFormFile 上传文件。

第27期-模型绑定 (81分钟)

模型绑定的工作原理,基本类型和复杂类型绑定,IFormFile文件上传,[BindRequired]、[BindNever]、[FromHeader]、[FromQuery]、[FromRoute]、[FromForm]、[FromServices]、[FromBody] 和 [ModelBinder] 特性的作用,通过特性自定义模型绑定行为,自定义模型绑定,实现 IModelBinder 与 IModelBinderProvider 接口,绑定请求正文中的带格式的数据。

第28期-模型验证 (80分钟)

模型验证简介,验证属性,验证错误消息的多语言支持,通过 ModelState.IsValid 检查模型验证结果,使用 TryValidateModel 手动验证,实现 IValidatableObject 接口自定义验证规则,继承 ValidationAttribute 实现自定义验证属性,深入客户端验证,实现 IClientModelValidator 接口向客户端提供验证元数据信息,向动态表单添加验证适配器,远程验证,使用第三方库让模型验证体验更好。

第29期-模型验证与视图语法 (100分钟)

使用 FluentValidation 进行模型验证,扩展验证框架,支持本地化错误消息提示。ASP.NET Core MVC 中的视图语法与指令,控制器指定视图,向视图传递数据,学习 Razor 语法,视图预编译设置。

第30期-视图布局 (81分钟)

视图布局、指定布局模板、导入共享指令、标记帮助程序、自定义标记帮助程序、部分视图、部分视图的申明、引用和数据传递、视图组件复用原理和自定义视图组件。

第31期-MVC控制器 (88分钟)

MVC中的控制器,关于 Action 操作定义,返回响应,传统路由,多个路由,属性路由,路由名称,合并路由,对属性路由排序,路由模板,自定义路由属性,URL生成,区域分区,自定义路由约束。

第32期-控制器&约定&筛选器 (93分钟)

ASP.NET Core 中的文件上传,使用模型绑定上传小文件,使用流式处理上传大文件,控制器中的依赖注入,构造函数注入,基于 FromServices 的注入方式,配置设置注入。应用程序模型,提供程序,自定义约定。筛选器的工作原理,同步筛选器与异步筛选器,IFilterFactory 筛选器工厂和内置筛选器特性。

第33期-筛选器&部件&功能 (114分钟)

筛选器作用域与执行顺序,重写默认顺序,取消与短路筛选器,筛选器中的依赖注入,授权筛选器,资源筛选器,操作筛选器,异常筛选器,结果筛选器,在筛选器管道中使用中间件。应用程序部件,程序集加载过程,自定义功能提供程序,显示可用功能。

第34期-构建WebAPI接口 (124分钟)

使用 ASP.NET Core 构建 Web API 接口,控制器约定,操作返回类型,返回特定类型,同步操作,异步操作,使用 EF Core 访问 MySQL 数据库,为 Web API 提供数据,使用基于 Swagger 规范的 Swashbuckle 框架生成 Web API 帮助文档,特定格式的操作结果,内容协商机制,配置格式化器,基于 URL 格式化参数, 自定义格式化程序。

第35期-单元测试 (55分钟)

认识单元测试,单元测试的最佳做法,使用 xUnit 进行单元测试,使用 MSTest 进行单元测试,使用 NUnit 进行单元测试,三种测试框架的最佳实践,单元测试管理器,使用 Live Unit Testing 实时显示测试结果,查看代码测试覆盖率。

第36期-集成测试&远程调试&源码跟踪 (108分钟)

在 ASP.NET Core 中测试控制器逻辑,为控制器编写单元测试,单元测试中的 Fake、Stub 和 Mock 术语,使用 Moq 框架进行单元测试,轻量级集成测试,了解 Selenium、Html Agility Pack 和 AngleSharp 框架,远程调试服务器程序,源码跟踪调试配置。

第37期-性能负载测试与高级调试 (93分钟)

性能测试,负载测试,基于代码的 UI 测试,关于 Windows 和 Linux 平台上的调试器与内存转储工具,抓取服务器内存转储文件,使用 WinDbg 在本地调试程序,理解 CLR 对象的内存形态,通过转储文件分析服务器内存和 CPU 的使用情况,介绍性能计数器和性能探测器。

第38期-在Windows平台上发布应用 (113分钟)

在 Windows 平台上发布 ASP.NET Core 应用,托管与部署的步骤,独立部署和框架依赖方式,安装 IIS 服务器,在服务器上安装 .NET Core 运行时,配置网站,理解发布选项,配置文件系统部署,配置 Web Deploy 方式部署,配置 FTP 方式部署,一键将应用发布到微软云应用服务或虚拟机,免费获取 SSL 证书,配置 HTTPS 协议支持,在 Windows 服务中托管应用。

第39期-使用Nginx在Linux平台上托管应用 (86分钟)

使用 Putty 远程管理 Linux 服务器,在 Ubuntu 上安装 .NET Core 运行时,通过 PSCP 上传文件到服务器,安装 Nginx 服务,配置反向代理,绑定域名,配置 SSL 证书,创建后台监控服务,安装 FTP 服务,通过 FTP 方式发布应用,编写脚本,实现一键自动化发布。

第40期-使用Apache在Linux平台上托管应用 (56分钟)

使用 Putty 通过 SSH 公钥连接 Linux 服务器,在 CentOS 上安装 .NET Core 运行时,搭建 FTP 服务器,发布文件到服务器,安装 Apache 服务,配置服务器,转发请求代理与负载均衡配置,绑定域名,配置 SSL 证书,创建后台监控服务,配置防火墙。

第41期-在Docker容器中托管应用 (107分钟)

容器技术简介,学习 Docker 体系结构,开发环境搭建,入门教程推荐,创建 ASP.NET Core 应用,使用 Visual Studio 自动生成映像,通过镜映像启动容器,私有仓库与公有仓库,将映像发布到远程仓库,编写 Docker Compose 文件,使用 Docker 编排工具在 Linux 平台上快速构建基于 SQL Server on Linux 的容器和 Web 容器, 了解 Swarm 集群、使用 Kubernetes 管理集群,认识微服务。

第42期-代理转接头与发布配置 (45分钟)

理解反向代理转接头,关于 X-Forwarded-For、X-Forwarded-Proto 和 X-Forwarded-Host 转接头,设置可信任的代理服务器地址,负载均衡及其配置。项目生成与发布流程,排除发布文件,包含发布文件,在发布前后运行自动任务,了解持续集成与交付,如何实施 DevOps 模型。使用全新的 LibMan 客户端库管理器。

第43期-内存缓存与分布式缓存 (73分钟)

缓存的概念与优点,基于内存缓存的配置,缓存项设置与获取、过期事件订阅、绝对过期、滑动过期和缓存依赖项,分布式缓存的配置方法,扩展分布式缓存接口,基于 Redis 的分布式缓存实现,安装 Redis 服务,配置端口和密码,基于 SQL Server 的分布式缓存实现,基于内存的分布式缓存实现,了解缓存雪崩与缓存穿透。

第44期-响应缓存与响应压缩 (77分钟)

理解HTTP缓存规范,在 ASP.NET Core 中配置响应缓存,设置缓存策略,在中间件中缓存响应,缓存部分页面,基于内存和分布式缓存的标记帮助程序,静态文件缓存配置,了解 CDN 缓存的优势。响应内容压缩中间件,配置 Gizp 和 Brotli 压缩算法,编写自定义压缩算法提供者,基于反向代理的压缩配置。

第45期-Identity身份认证框架 (73分钟)

认证与授权的区别,基于声明的身份认证,在 ASP.NET Core 中使用内置的 Identity 框架,使用基架快速创建身份认证系统,自定义表结构与实体关系,理解 Identity 的体系结构,扩展数据访问层,自定义身份认证系统界面。

第46期-Identity框架相关配置 (86分钟)

短信与邮件发送器配置,理解基于 ASP.NET Core MVC 控制器的 Identity 框架,双重 2AF 身份认证,理解认证与授权流程,深入 Identity 框架配置,更改声明类型,账号锁定机制,密码安全性,登录策略,TOKEN 校验,用户名安全性和 Cookie 相关配置,基于 OAuth 2.0 协议的第三方身份验证提供程序,集成腾讯 QQ 和 微信身份认证。

第47期-基于声明的身份认证与授权 (75分钟)

理解基于声明的身份认证与授权,理解身份认证中的 Claims、ClaimsIdentity 和 ClaimsPrincipal 模型,生成 TOKEN 令牌,使用中间件验证令牌,用 Cookie 方案实现登录和注销功能,在 MVC 中使用基于角色的授权方式。

第48期-身份认证的工作原理 (83分钟)

基于 Cookie 认证的参数配置,使用 Cookie 策略中间件,订阅 Cookie 的添加与移除事件,票据的过期与缓存。ASP.NET Core 身份认证的工作原理,通过 HttpContext 的扩展方法进行登录、验证、退出、质询和拒绝,认证服务接口,认证方式提供者,认证处理程序提供者,自定义认证处理程序,并通过依赖注入扩展身份认证方案。

第49期-身份认证原理与Identity扩展 (82分钟)

理解 ASP.NET Core 身份认证系统的核心原理,分析微软身份认证系统的源代码。使用 IdentityManager 管理 Identity 数据结构,编写自己的后台管理界面,手机号绑定与验证,2AF双重身份认证,基于 TOTP 算法的时间一次性密码,二维码生成方案。

第50期-基于HTTP协议的认证方案 (81分钟)

基于 Cookie 的身份认证原理回顾,理解 HTTP 协议栈提供的通用认证框架,学习 HTTP 基本身份认证,根据微软设计规范,编写自己的认证框架,在 ASP.NET Core 中实现 HTTP 基本身份认证方案,默认常量,参数选项,身份认证处理器,提供与微软一致的扩展方法,编写可扩展的认证事件,在其它应用中使用自己开发的认证方案。

第51期-身份认证方式与令牌 (80分钟)

基于 HTTP 协议的身份认证规范, Digest 摘要身份认证,Windows 身份认证,Kerberos 和 NTLM 协议,Bearer 身份认证,在 IIS 中配置身份认证方案,在应用程序中提供访问凭证,基于 JWT 规范的访问令牌,在 .NET Core 中生成并校验 JWT 格式的令牌。

第52期-JwtBearer身份认证方案 (87分钟)

编写 JWT 令牌签发服务,在 ASP.NET Core 中使用 JwtBearer 身份认证方案验证令牌,在 APP 客户端 和 Web 客户端中申请 JWT 令牌,并使用 Bearer 认证方式,通过 JWT 令牌访问受保护数据,对称和非对称算法签名技术,生成 RSA 公钥和私钥,使用私钥签发令牌,通过公钥验证令牌,基于角色声明的授权。

第53期-SAML与WS联合身份认证 (65分钟)

参数化 JWT 访问令牌,基于 OSS 单点登录的开源身份验证提供程序,理解 SAML 安全断言标记语言,在 .NET Core 中生成并校验 SAML 格式的令牌,阿里云和腾讯云提供的免费联合身份认证,在 ASP.NET Core 中集成微软 WS-Federation 联合身份认证方式。

第54期-OpenID与OAuth协议 (82分钟)

理解 OpenID 认证协议,理解 OAuth 2.0 授权协议,通过不同的授权方式获取访问令牌,OpenID Connect 认证与授权协议,在 ASP.NET Core 中使用 OAuth 授权协议集成第三方登录方式,分析授权码模式获取访问令牌的业务流程。

第55期-OAuth与OIDC协议 (92分钟)

理解 OAuth 2.0 与 OpenID Connect 协议的区别,在 ASP.NET Core 中使用 OAuth 处理程序进行身份认证,使用 OpenID Connect 处理程序进行身份认证,分析 OIDC 协议获取访问令牌和用户身份信息的详细流程。

第56期-基于策略的授权 (93分钟)

理解授权的过程与原理,在 ASP.NET Core 中使用授权组件,简单授权,基于角色的授权,基于声明的授权,基于策略的授权,授权策略与授权条件,授权机制的内部工作原理,自定义授权处理程序,多条件授权处理程序,使用 Func 委托实现授权策略,授权处理程序的返回结果约定。

第57期-授权机制的内部工作原理 (76分钟)

理解 ASP.NET Core MVC 中的授权扩展,基于认证方案的授权,授权应用程序模型提供者,授权过滤器,策略计算器,授权服务,授权策略提供者,授权处理程序上下文与工厂,授权处理程序提供者,授权计算器,理解授权策略的执行过程,编写自定义授权特性标记,实现自定义授权策略提供者,基于 Razor 页面的授权约定。

第58期-基于资源的授权与动态授权 (99分钟)

基于资源的授权方式,定义资源授权条件,实现资源授权处理程序,调用授权服务处理授权,基于角色与权限的动态授权,自定义授权筛选器,在视图中使用授权服务接口。

在线观看视频教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343