ASP.NET Core

ASP.NET Core MVC入门——2

不问归期 提交于 2020-04-19 11:36:14
如何识别到Controller: asp.net core mvc是通过URL来识别请求中的控制器,默认URL路由逻辑是 /[Controller]/[ActionName]/[Parameters] 默认URL的路由格式在项目中的Startup.cs中有定义,ActionName表示控制器类中的方法。 app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); 如果URL 是 localhost:59191/HelloWorld,则表示对应访问HelloWorldController类的Index方法。 如果URL 是 localhost:59191/HelloWorld/Welcome,则表示对应访问HelloWorldController类的Welcome方法。 我们尝试修改Welcome方法如下 public string Welcome(string name, int numTimes = 1) { return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}"); }

Asp.net Core MVC(四)

☆樱花仙子☆ 提交于 2020-04-19 04:26:17
上一篇说的是asp.net mvc核心UseMvc的过程,末尾想捋一下asp.net核心的路由流转过程,现在看来还是要准备下一个代码,熟悉了代码,那么整个流转过程就通了〜 不多说,今儿先看下,RouteContext: private RouteData _routeData; public RouteContext(HttpContext httpContext) { HttpContext = httpContext; RouteData = new RouteData(); } public RequestDelegate Handler { get ; set ; } public HttpContext HttpContext { get ; } public RouteData RouteData { get { return _routeData; } set { if (value == null ) { throw new ArgumentNullException(nameof(RouteData)); } _routeData = value; } } 这里可以理解RouteContext(路由子网)就是路由的环境。 其中包含三个属性器,RouteData,RequestDelegate与HttpContext。 那么什么时候设置路由的某些呢呢? 个人理解是

Blazor WebAssembly 3.2.0 Preview 4 如期发布

☆樱花仙子☆ 提交于 2020-04-18 19:47:08
ASP.NET团队如期3.16在官方博客发布了 Blazor WebAssembly 3.2.0 Preview 4: https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-preview-4-release-now-available/ ,同时在twitter上发了一条信息带上了下面这张图,这张图很形象的说明了Blazor Webassembly 正在进行最后的准备发射,按照开发计划,将在下周4.23 发布Blazor WebAssembly 3.2.0 Preview 5, 完成功能特性的开发,接下来就是5月初发布Blazor WebAssembly 3.2.0 RC了,将在5.19 的微软Build大会正式发射升空,进入使用C#进行前端开发旅程。 Blazor WebAssembly 3.2.0 Preview 4新增功能: 启动期间访问主机环境:在 WebAssemblyHostBuilder通过 IWebAssemblyHostEnvironment的 HostEnvironment 属性公开,在应用环境中的启动过程中区分(开发,分期,生产等)的细节。如果该应用程序托管在ASP.NET Core应用程序中,则该环境将反映ASP.NET Core环境,因此ASP.NET Core肯定是最佳开发环境

.Net Core结合AspNetCoreRateLimit实现限流

六眼飞鱼酱① 提交于 2020-04-18 17:36:13
前言   相信使用过 WebApiThrottle 的童鞋对AspNetCoreRateLimit应该不陌生, AspNetCoreRateLimit 是一个ASP.NET Core速率限制的解决方案,旨在控制客户端根据IP地址或客户端ID向Web API或MVC应用发出的请求的速率。AspNetCoreRateLimit包含一个 IpRateLimitMiddleware 和 ClientRateLimitMiddleware ,每个中间件可以根据不同的场景配置限制允许IP或客户端,自定义这些限制策略,也可以将限制策略应用在每​​个API URL或具体的HTTP Method上。 实践   起初是因为新做的项目中,有天查询日志发现,对外的几个公共接口经常被“恶意”调用,考虑到接口安全性问题,增加限流策略。    AspNetCoreRateLimit GayHub: https://github.com/stefanprodan/AspNetCoreRateLimit 根据IP进行限流   通过nuget安装AspNetCoreRateLimit,当前版本是3.0.5,因为实际项目中用的都是分布式缓存,在这里不用内存存储,而是 结合Redis进行使用 ,内存存储直接参考官方的Wiki就可以了。 Install-Package AspNetCoreRateLimit Install

ASP.NET Core 2.0 MVC项目实战

怎甘沉沦 提交于 2020-04-18 14:53:01
一、前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的。之前实习时主要是做.NET的B/S架构的项目,主要还是用的那种传统的开发模式,只有一个项目用到了Web API,自己负责后端的接口功能实现。既然现在没办法改变现状,那就先改变自己吧。定了个计划,下班后慢慢的开始学习ASP.NET Core Web API和Vue,准备从前端到后端自己写一个小项目玩玩,毕竟代码这个东西,时间长了是会忘的。 嗯,有点扯远了。这个MVC项目是我的毕业设计,虽然写的比较烂,而且当时为了赶紧写完,代码的冗余程度有点高,但还是希望能给一些准备入门ASP.NET Core MVC的童鞋提供些借鉴吧。代码我放到Github上了,源码地址 https://github.com/Lanesra712/Danvic.PSU ,欢迎大神们拍砖,指出不足处。 二、项目介绍 毕业论文的课题是一个大学生的一个报名系统,主要是为了完成大学生报名过程中的一些数据维护,当然最后因为实在来不及了,好多都没做。。。项目主要使用到的相关技术如下所示: 项目框架:ASP.NET Core 2.0 MVC ORM:Entity Framework Core(使用Code First) 数据库引擎:MySQL SERVER 5.7 权限验证

Blazor WebAssembly 3.2.0 Preview 4 如期发布

ⅰ亾dé卋堺 提交于 2020-04-18 14:43:49
ASP.NET团队如期3.16在官方博客发布了 Blazor WebAssembly 3.2.0 Preview 4: https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-preview-4-release-now-available/ ,同时在twitter上发了一条信息带上了下面这张图,这张图很形象的说明了Blazor Webassembly 正在进行最后的准备发射,按照开发计划,将在下周4.23 发布Blazor WebAssembly 3.2.0 Preview 5, 完成功能特性的开发,接下来就是5月初发布Blazor WebAssembly 3.2.0 RC了,将在5.19 的微软Build大会正式发射升空,进入使用C#进行前端开发旅程。 Blazor WebAssembly 3.2.0 Preview 4新增功能: 启动期间访问主机环境:在 WebAssemblyHostBuilder通过 IWebAssemblyHostEnvironment的 HostEnvironment 属性公开,在应用环境中的启动过程中区分(开发,分期,生产等)的细节。如果该应用程序托管在ASP.NET Core应用程序中,则该环境将反映ASP.NET Core环境,因此ASP.NET Core肯定是最佳开发环境

(8)ASP.NET Core 中的MVC路由一

风格不统一 提交于 2020-04-18 12:31:32
1.前言 ASP.NET Core MVC使用路由中间件来匹配传入请求的URL并将它们映射到操作(Action方法)。路由在启动代码(Startup.Configure方法)或属性(Controller Action属性)中定义。路由描述应如何将URL路径与操作(Action方法)相匹配。它还用于在响应中生成送出的URL。 路由操作可以设置中间件,支持传统路由、属性理由(通过在Controller Action上放置理由可实现)、多个路由。 2.设置路由中间件 在Configure方法中,可能会看到与下面类似的设置路由中间件代码: app.UseMvc(routes => { routes.MapRoute(name: " default " , template: " {controller=Home}/{action=Index}/{id?} " ); }); 等价于 // 默认模版就是 "{controller=Home}/{action=Index}/{id?}" app.UseMvcWithDefaultRoute(); 在UseMvc的匿名方法中,MapRoute表示创建单个路由,指定为默认(default)路由、路由模版“{controller=Home}/{action=Index}/{id?}”。 路由模版“{controller=Home}/{action

.Net Core结合AspNetCoreRateLimit实现限流

无人久伴 提交于 2020-04-18 12:21:40
.Net Core结合AspNetCoreRateLimit实现限流 前言 相信使用过WebApiThrottle的童鞋对AspNetCoreRateLimit应该不陌生,AspNetCoreRateLimit是一个ASP.NET Core速率限制的解决方案,旨在控制客户端根据IP地址或客户端ID向Web API或MVC应用发出的请求的速率。AspNetCoreRateLimit包含一个IpRateLimitMiddleware和ClientRateLimitMiddleware,每个中间件可以根据不同的场景配置限制允许IP或客户端,自定义这些限制策略,也可以将限制策略应用在每​​个API URL或具体的HTTP Method上。 实践 起初是因为新做的项目中,有天查询日志发现,对外的几个公共接口经常被“恶意”调用,考虑到接口安全性问题,增加限流策略。 AspNetCoreRateLimit GayHub: https://github.com/stefanprodan/AspNetCoreRateLimit 根据IP进行限流 通过nuget安装AspNetCoreRateLimit,当前版本是3.0.5,因为实际项目中用的都是分布式缓存,在这里不用内存存储,而是结合Redis进行使用,内存存储直接参考官方的Wiki就可以了。 Install-Package

Blazor WebAssembly 3.2.0 Preview 4 如期发布

岁酱吖の 提交于 2020-04-18 12:19:44
ASP.NET团队如期3.16在官方博客发布了 Blazor WebAssembly 3.2.0 Preview 4: https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0-preview-4-release-now-available/ ,同时在twitter上发了一条信息带上了下面这张图,这张图很形象的说明了Blazor Webassembly 正在进行最后的准备发射,按照开发计划,将在下周4.23 发布Blazor WebAssembly 3.2.0 Preview 5, 完成功能特性的开发,接下来就是5月初发布Blazor WebAssembly 3.2.0 RC了,将在5.19 的微软Build大会正式发射升空,进入使用C#进行前端开发旅程。 Blazor WebAssembly 3.2.0 Preview 4新增功能: 启动期间访问主机环境:在 WebAssemblyHostBuilder通过 IWebAssemblyHostEnvironment的 HostEnvironment 属性公开,在应用环境中的启动过程中区分(开发,分期,生产等)的细节。如果该应用程序托管在ASP.NET Core应用程序中,则该环境将反映ASP.NET Core环境,因此ASP.NET Core肯定是最佳开发环境

Asp.net Core MVC(三)UseMvc设置路由

99封情书 提交于 2020-04-18 11:53:22
在家办公,下班继续看点东西,不废话,继续看MVC的路由。 asp.net核心mvc的路由是建立在asp.net核心的路由之上的。通过终结点加载路由中间件的配置方式在此不细说了,( DOTNET Core MVC(二)已经说明 )。在看一下其他的加载方式: app.UseMvc(routes => { // 使用指定的名称和模板将路由添加到IRouteBuilder。 routes.MapRoute( " default " , " {controller=Home}/{action=Index}/{id?} " ); }); 这种方式在.net core 3.0(使用终结点加载路由中间件)中使用会提示 根据提示我们在代码中添加: ConfigureServices方法中添加: // 不启用终结点 services.AddMvc(options => options.EnableEndpointRouting = false ); public static IApplicationBuilder UseMvc( this IApplicationBuilder app, Action<IRouteBuilder> configureRoutes { if (app == null ) { throw new ArgumentNullException(nameof(app)); }