razor

【asp.net core 系列】5 布局页和静态资源

拈花ヽ惹草 提交于 2020-08-14 10:54:29
0. 前言 在之前的4篇的内容里,我们较为详细的介绍了路由以及控制器还有视图之间的关系。也就是说,系统如何从用户的HTTP请求解析到控制器里,然后在控制器里处理数据,并返回给视图,在视图中显示出来。这一篇我将为大家介绍基础的最后一部分,布局页和静态资源引入。 1. 布局页 在控制器和视图那一篇,我们了解到 _ViewStart 里设置了一个Layout属性的值,这个值正是用来设置布局页的。所谓的布局页,就是视图的公用代码。在实际开发中,布局页通常存放我们为整个系统定义的页面框架,视图里写每个视图的页面。 回顾一下,默认的 _ViewStart 里的内容是: @{ Layout = "_Layout"; } 默认的布局页指定的是名为 _Layout 的布局页,在本系列第三篇中,我们得知这个视图应当在Shared文件夹下,那我们进去看一下这个视图有什么内容: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>@ViewData["Title"] - MvcWeb</title> <link rel="stylesheet" href="~/lib

Blazor 修仙之旅

南笙酒味 提交于 2020-08-14 08:26:34
一.前言 这是《Blazor 修仙之旅》的第三篇,前面两分别是《初次尝试》、《组件与数据绑定》,直接到这里上 Ant Design 确实连不起来,跨度比较大,其实我也是在边学边写,看的是官方文档,我觉得中间这部分重复写博客的意义不大,所以我建议去看官方文档,传送门: 点我 。如果看过我的前两篇,我建议您从这里开始看: 点我 。不用每篇都深刻理解,但需要有一个基本概念。好了,下面进入正题。 二. Ant Design of Blazor 介绍 ant-design-blazor 是国内开发者 ElderJames 创建的一个开源项目。在前不久的微软Build大会也见到了它的身影,受到了微软官方推荐,点赞!顾名思义, ant-design-blazor 是 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品。 ✨ 特性 🌈 提炼自企业级中后台产品的交互语言和视觉风格。 📦 开箱即用的高质量 Razor 组件,可在多种托管方式共享。 💕 支持基于 WebAssembly 的客户端和基于 SignalR 的服务端 UI 事件交互。 🎨 支持渐进式 Web 应用(PWA) 🛡 使用 C# 构建,多范式静态语言带来高效的开发体验。 ⚙️ 基于 .NET Standard 2.1,可直接引用丰富的 .NET 类库。 🎁 可与已有的 ASP.NET Core MVC

ASP.NET Core Blazor 初探之 Blazor WebAssembly

故事扮演 提交于 2020-08-12 17:02:32
原文: ASP.NET Core Blazor 初探之 Blazor WebAssembly 最近Blazor热度很高,传说马上就要发布正式版了,做为微软脑残粉,赶紧也来凑个热闹,学习一下。 Blazor Blazor是微软在ASP.NET Core框架下开发的一种全新的Web开发框架。Blazor利用WebAssembly使得开发者可以抛开JavaScript而使用优雅的C#来开发web单页应用。微软利用WebAssembly在浏览器里实现了一个.NET Runtime,任何.NET STANDARD 2.1的代码都可以在浏览器上运行,真的是屌炸了。Blazor强化了Razor模板引擎,并且借鉴了当前热门前端框架的优点,比如双向绑定技术,组件化,使前端开发敏捷高效。如果你对NG,VUE等框架熟悉那么很容易找到其中的共通点。 Blazor WebAssembly Blazor 技术又分两种: Blazor WebAssembly Blazor Server Blazor WebAssembly 是真正的SPA,页面的渲染在前端实现,可以实现真正的前后端分离设计。而Blazor Server可以认为是前者的服务端渲染版本,它使用SignalR实现了客户端的实时通讯,它的计算跟渲染都在服务端处理。本次咱先研究WebAssembly技术,因为我觉得它的应用前景可能更适合一般项目

简单服务器端Blazor Cookie身份验证的演示

血红的双手。 提交于 2020-08-11 19:45:58
原文: 简单服务器端Blazor Cookie身份验证的演示 为了演示身份验证如何在服务器端 Blazor 应用程序中工作,我们将把身份验证简化为最基本的元素。 我们将简单地设置一个 cookie,然后读取应用程序中的 cookie。 应用程序身份验证 大多数商业 web 应用程序都要求用户登录到应用程序中。 用户输入他们的用户名和密码,对照成员资格数据库进行检查。 一旦通过身份验证,该应用程序即可识别用户,并且现在可以安全地传递内容。 理解了服务器端 Blazor 应用程序的身份验证过程,我们就可以实现一个满足我们需要的身份验证和成员资格管理系统(例如,一个允许用户创建和管理其用户帐户的系统)。 注意:此示例代码不会检查是否有人使用了合法的用户名和密码! 您将需要添加正确的代码进行检查。 这段代码只是对授权用户的过程的演示。 创建应用程序 打开Visual Studio 2019。 创建没有身份验证的 Blazor 服务器应用程序。 添加Nuget软件包 在解决方案资源管理器中,右键单击项目名称并选择 Manage NuGet Packages。 添加对以下库的引用: Microsoft.AspNetCore.Authorization Microsoft.AspNetCore.Http Microsoft.AspNetCore.Identity 另外还有 Microsoft

ASP.NET Core MVC四种枚举绑定方式

我们两清 提交于 2020-08-11 12:32:22
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满满的干货,你值得拥有。 探讨枚举绑定方式 我们首先给出要绑定的枚举类。 public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一(@Html.DropDownList) 接下来我们废话少说直接进入主题。 ViewBag.enums = Enum.GetValues( typeof (Language)).Cast<Language>(); 视图页面则是得到该ViewBag中的值。 @Html.DropDownList( " enumList " , new SelectList(ViewBag.enums), new { @class = " btn btn-success dropdown-toggle form-control " }) 绑定方式二(@Html.EnumDropDownListFor) 此时我们需要借助强类型视图来操作,如下控制器代码 [HttpGet] public IActionResult Get() { var test = new TestViewModel();

.Net Core实战之基于角色的访问控制的设计

不羁的心 提交于 2020-08-11 09:04:28
前言   上个月,我写了两篇微服务的文章:《 .Net微服务实战之技术架构分层篇 》与《 .Net微服务实战之技术选型篇 》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。   本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。如今我花了点时间整理了下代码,并以此篇文章描述整个实现思路,并开放了源码给予需要的人一些参考。   源码: https://github.com/SkyChenSky/Sikiro.RBAC RBAC   Role-Based Access Contro翻译成中文就是 基于角色的访问控制 ,文章以下我都用他的简称 RBAC 来描述。   现信息系统的 权限控制 大多数采取RBAC的思想进行实现,其 本质思想 是对系统各种的操作权限不是直接授予具体的某个用户,而是在用户集合与权限集合之间建立一个角色,作为 间接 关联。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。   通过以上的描述,我们可以分析出以下信息:   用户与权限是通过角色间接关联的   角色的本质就是权限组(权限集合)   这样做的好处在于,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多

.Net Core实战之基于角色的访问控制的设计

情到浓时终转凉″ 提交于 2020-08-11 08:19:38
前言   上个月,我写了两篇微服务的文章:《 .Net微服务实战之技术架构分层篇 》与《 .Net微服务实战之技术选型篇 》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。   本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。如今我花了点时间整理了下代码,并以此篇文章描述整个实现思路,并开放了源码给予需要的人一些参考。   源码: https://github.com/SkyChenSky/Sikiro.RBAC RBAC   Role-Based Access Contro翻译成中文就是 基于角色的访问控制 ,文章以下我都用他的简称 RBAC 来描述。   现信息系统的 权限控制 大多数采取RBAC的思想进行实现,其 本质思想 是对系统各种的操作权限不是直接授予具体的某个用户,而是在用户集合与权限集合之间建立一个角色,作为 间接 关联。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。   通过以上的描述,我们可以分析出以下信息:   用户与权限是通过角色间接关联的   角色的本质就是权限组(权限集合)   这样做的好处在于,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多

从零开始实现ASP.NET Core MVC的插件式开发(三)

亡梦爱人 提交于 2020-08-11 06:43:48
标题:从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件 作者:Lamond Lu 地址: https://www.cnblogs.com/lwqlun/p/11260750.html 源代码: https://github.com/lamondlu/DynamicPlugins 前情回顾 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 在前面两篇中,我为大家演示了如何使用Application Part动态加载控制器和视图,以及如何创建插件模板来简化操作。 在上一篇写完之后,我突然想到了一个问题,如果像前两篇所设计那个来构建一个插件式系统,会有一个很严重的问题,即 当你添加一个插件之后,整个程序不能立刻启用该插件,只有当重启整个ASP.NET Core应用之后,才能正确的加载插件。因为所有插件的加载都是在程序启动时 ConfigureService 方法中配置的。 这种方式的插件系统会很难用,我们期望的效果是在运行时动态启用和禁用插件,那么有没有什么解决方案呢?答案是肯定的。下面呢,我将一步一步说明一下自己的思路、编码中遇到的问题,以及这些问题的解决方案。 为了完成这个功能

FreeSql.Generator命令行代码生成器是如何实现的

本秂侑毒 提交于 2020-08-11 04:03:32
目录 FreeSql介绍 FreeSql.Generator RazorEngine.NetCore 源码解析 FreeSql.Tools FreeSql FreeSql 是功能强大的对象关系映射技术(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.0+ 或 Xamarin。 有一个强大的ORM,也方便我们开发一个代码生成器。 一般情况下,我们开发数据库相关的应用,主要分为三种code first、db first、model first 我只用过前二种, code first,代码优先,数据库都是根据实体类生成,所有的关系,可以是逻辑关联,也可以是物理关联。 DB First: 数据库优先,直接设计表结构,用设计工具生成表,设计主键,外键、索引,关联关系等。 当我们使用DB First时,设计好的数据库,我们怎么生成一些实体类、通用的代码、控制器、服务层、Dto呢。今天我来给大家介绍一下FreeSql项目中的一些工具。当然,不使用此ORM的小伙伴也能使用此工具,因为他是通用。 FreeSql.Generator 命令行方式 通过几行命令,就可实现生成项目中通用的代码结构,不需要复制一段代码后修改,加快开发速度,减少重复劳动,少用一根头发。 由于每个人的项目结构,代码位置各不相同,对于ORM来说,不同的业务逻辑各不相同,所以该项目没有相应的模板

.Net Core实战之基于角色的访问控制的设计

对着背影说爱祢 提交于 2020-08-11 03:07:13
前言   上个月,我写了两篇微服务的文章:《 .Net微服务实战之技术架构分层篇 》与《 .Net微服务实战之技术选型篇 》,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先打算放一放。   本篇文章与源码原本打算实在去年的时候完成并发布的,然而我一直忙于公司项目的微服务的实施,所以该篇文章一拖再拖。如今我花了点时间整理了下代码,并以此篇文章描述整个实现思路,并开放了源码给予需要的人一些参考。   源码: https://github.com/SkyChenSky/Sikiro.RBAC RBAC   Role-Based Access Contro翻译成中文就是 基于角色的访问控制 ,文章以下我都用他的简称 RBAC 来描述。   现信息系统的 权限控制 大多数采取RBAC的思想进行实现,其 本质思想 是对系统各种的操作权限不是直接授予具体的某个用户,而是在用户集合与权限集合之间建立一个角色,作为 间接 关联。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。   通过以上的描述,我们可以分析出以下信息:   用户与权限是通过角色间接关联的   角色的本质就是权限组(权限集合)   这样做的好处在于,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多