首先在程序包管理器控制台运行安装MVC5.0,因为[Route("/api/..")]只会存在于MVC5.0中间,运行  Install-Package Microsoft.AspNet.Mvc -Version 5.0.0这个安装命令执行安装,安装这个命令以后会默认管理到项目中去,但是也会有例外的情况,就是没有管理到项目中去,同样的会导致Route报错,此时应该点开"工具>程序包管理器>管理解决方案的NuGet包>找到ASP.NET MVC>点击管理…
1. 打开NuGet,打开方法 工具->库程序包管理器->程序包管理器控制台,如下图所示: 2. 输入如下命令Install-Package Microsoft.AspNet.WebApi 更新web Api,如下图所示: 引用地址:https://blog.csdn.net/nnnnnbody/article/details/16945253…
Optional URI Parameters and Default Values You can make a URI parameter optional by adding a question mark to the route parameter. If a route parameter is optional, you must define a default value for the method parameter. public class BooksControlle…
WebApiConfig.cs中加入 如下代码即可解决无限循环问题 var json = config.Formatters.JsonFormatter; // 解决json序列化时的循环引用问题 json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; // 干掉XML序列化器 config.Formatters.Remove(config.Formatters.X…
public static void Register(HttpConfiguration config) { // Web API 配置和服务 config.Formatters.Remove(config.Formatters.XmlFormatter); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore…
事件回放: 之前一段时间,公司里前端用的Angularjs 发送http请求也是用的ng的组件,后台是.Net的WebApi 前端 var data = { PArgs: { PageIndex: 0, PageSize: 8, RowsCount: 0 } }; $http.post("/Api/Test/ABC", data).success(function (data) { console.log(data) }); 后台接收 using SignalRDemo.VModel;…
前言 在iOS中,NSTimer的使用是非常频繁的,但是NSTimer在使用中需要注意,避免循环引用的问题.之前经常这样写: - (void)setupTimer { self.timer = [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(timerAction) userInfo:nil repeats:YES]; } - (void)dealloc { [self.timer invalidat…
1.查看.Net Framework的框架是否是在4.5之上,如果不是要下载4.5之上的目标框架. 2.在引用器里面添加using System.Net.Http命名空间 选择项目列表中的“引用”-->右击选择“添加引用” 在搜索框中输入"System.Net.Http",搜索结果会显示搜索结果,选中多选框,点击“确定”按钮“…
在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收. GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命周期内始终持有外部类的对象的引用,造成外部类的对象始终不满足GC的回收条件,反映在内存上就是内存泄露.(如,Android中Activity的内存泄露) 解决方案为 1.将内部类定义为static 2.用static的变量引用匿名内部类的实例 测试代码 class Outer { class Inn…
ABP动态webapi返回的json数据中,日期时间带T还有毫秒数的问题,在以往的版本中可以使用下面方法解决: 在XXXAbpWebApiModule中加上下面的代码: 很老的很老的版本有效: public override void Initialize() { Configuration.Modules.AbpWebApi().HttpConfiguration.Formatters.JsonFormatter.SerializerSettings.DateFormatString= "yy…
方法名加特性 [ValidateInput(false)] 配置文件加 <httpRuntime requestValidationMode="2.0" targetFramework="4.5" ></httpRuntime>…
1)首先,登录阿里巴巴iconfont.cn 2)新建项目 3)点击icon收藏 4)加入到test项目中   5)下载到本地解压   6)生成代码   7)复制iconfont.css到xxx.wxss 8)替换iconfont.css中的@font-face为上面的生成代码 9)xxx.wxss样式中@import使用 @import "../../../css/test.wxss"; 10)wxml中使用 <text class='iconfont icon-home' s…
在用户登录账号时,我需要在字典中查找是否存在其账号名称以及密码是否正确. 所以,我想将用户输入的账号赋值给变量,在字典中查找是否有此指值. 代码如下: 1 Ya = {'姓名': 'Ya', 'password': '123', '性别': '男', '职业': '学生'} 2 user_message = {'Ya': Ya} 3 4 in_name = input("输入:") 5 in_password = input("输入:") 6 7 if in_nam…
OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下: OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application.基于此标准,鼓励开发者开发简单.灵活的模块,从而推进.NET Web Development开源生态系统的发展. 为什么我们需要OWIN 过去,IIS作为.NET开发者来说是最常用的Web Server(没有之一),…
本文使用xUnit对ASP.NET Core WebAPI做单元测试,使用HttpClient的同步和异步请求,下面详细介绍xUnit的使用过程: 一.创建示例项目 模板为我们自动创建了一个ValuesController控制器,保留里面的一个Get请求和Post请求方法,代码如下: [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET ap…
在 .NetFramework 中使用 WebApi ,在不讨论 微服务 的模式下,大部分都是以层来拆分库的 : 基础设施 数据存储层 服务层 WeApi 层 一些其它的功能库 项目结构可能会像下面这样子 有些人可能会将其中的 数据存储层.服务层 按业务功能进行垂直拆分, 但是到了 WebApi 这层,就不得不把所向所有业务功能的 Controller 都堆在这儿了. 随着业务的堆积,WebApi 这层的代码量越来越大,耦合性也越来越强,越来越难维护. … …… ……… ………… 这时候,微服务…
上回说到涉及多个实体的传参,用常规的方法已经不能解决了.这回我们用终极大招搞定她. WebApi:注意要引用JSON.Net [HttpPost] public string GetData(string name,JObject obj) { dynamic json = obj; //获得动态对象 JObject womanJson = json.woman; //获取动态对象中子对象 JObject sonJson = json.son; var woman = womanJson.ToO…
版本控制的好处: (1)助于及时推出功能, 而不会破坏现有系统. (2)它还可以帮助为选定的客户提供额外的功能. API 版本控制可以采用不同的方式进行控制,方法如下: (1)在 URL 中追加版本或作为查询字符串参数, (2)通过自定义标头和通过接受标头 在这篇文章中, 让我们来看看如何支持多个版本的 ASP.NET  Core  Web API. 一.创建asp.net core webapi 项目,引用NuGet包:Install-Package Microsoft.AspNetCore.…
1: Web.config里有一行: <remove name="OPTIONSVerbHandler" /> 这个要删除. 2: nuget安装Microsoft.AspNet.WebApi.Cors这个引用 3: 在WebApiConfig.Register方法里,添加下: config.EnableCors(); 4: 在控制器Controller里加这个Attribute: [EnableCors(origins: "*", headers: &…
1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了.写此文的目的,即实现 .net core WebAPI 的 GET.POST 方法访问数据库,并输出结果. 2. 开发准备 2.1 操作系统 Windows 10 / Windows 7 2.2 .net core sdk .net core 2.2 下载地址:https://dotnet.microsoft.com/download 2.3 开发工具…
1, 什么是循环引用问题?为什么会导致循环引用? 1.1先讲是什么? 主文件中class类过多会导致主文件冗余,如下图,所以我们单独给class类一个文件,然后再引用它. 1.2再讲为什么? 主文件为models_sep.py文件, models.py文件为: 可以看到,models.py文件要从主文件models_sep.py中引用生成的db,即“db = SQLAlchemy(app)”,在models.py中写完“class Article(db.Model):”后要被主文件models_…
一.NuGet搜索安装Microsoft.AspNet.WebApi,注意引用的版本依赖,因为是在完整的MVC项目上新增,在本地编译调试并没有报错,发布到IIS后却显示应用程序出错. 二.NuGet搜索安装Microsoft.AspNet.WebApi.HelpPage,自动生成说明文档. 三.NuGet搜索安装WebApiTestClient,在HelpPage页面上增加了测试功能.…
为什么还要写这类文章?因为我看过网上很多讲解的都不够全面,而本文结合实际工作讲解了swaggerui文档,统一响应格式,异常处理,权限验证等常用模块,并提供一套完善的案例源代码,在实际工作中可直接参考使用. 一.先看看最终效果 这是最后生成的swagerui文档,大家可以直接访问这个地址体验: http://sapi.daimali.com/swagger/ui/index (若无法访问,请公众号CodeL联系) git源码地址:https://gitee.com/daimali/WebApiD…
WebApi必须保证安全,现在来添加JWT认证 1.打开appsettings.json添加JWT认证的配置信息 2.在项目根目录下新建一个Models文件夹,添加一个JwtSettings.cs的实体 namespace Dinner.WebApi.Models { public class JwtSettings { /// <summary> /// 证书颁发者 /// </summary> public string Issuer { get; set; } /// <…
上一节我们讲到实体,仓储接口和仓储接口的实现需要遵循约定的命名规范,不仅是规范,而且为了依赖注入,现在我们实现仓储的依赖注入 在NetCore WebApi项目中新添加一个文件夹(Unit),当然你也可以直接放在根目录下面,关键是后期类增加了你会找对地方,看起来不是那么乱,添加一个RuntimeHelper 我先说一下实现仓储依赖注入的基本思路,就是通过反射获取所有的程序集,然后在程序集中找到 I+实体+Repository的接口和 实体+Repository的实现类,然后在依赖注入容器中注册他…
Overview 最近被序列化,循环引用的问题,让我浑身酸爽.遇到这种异常是在搭建WebApi的时候,当我返回Linq实例类集合的时候出现的. 下定决心要解决这个问题.循环引用引起的原因是: 比如说:我现在有两个 类 A 和 B 现在 A类中有B类类型的属性存放着B类的对象,而B类中有一个属性,存放置A类型的字段.结果,进行序列化的时候,序列化A的时候,因为要序列化这B类对象的属性,然后去序列化B类型的对象,B类型的对象有一个属性放置A类型的对象,然后又去序列化A ,如此循环往复. 说的可能有点…
什么是Cors? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制.本文详细介绍CORS的内部机制. 一.简介 CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏览器不能低于IE10. 整个CORS通信过程,都是浏览器自动完成,不需要用户参与.对于开发者来说,CORS通信与同源的AJAX通信没有差别,代…
公司的很多项目前期一直是用的WebForms.但是因为业务的发展,公司要在原有的项目上接入移动端,webservice有点老旧了,现在比较流行RESTFul,于是乎就想到了WebAPI. 一.如果是新建项目最简单,文件=>新建=>项目=>Web=> ASP.NET Web 应用程序,在下方同时勾选Web Forms 和 Web API 核心引用即可,webfroms核心和WebAPI核心的应用程序就创建好了. 二.如果是原有的项目上增加WebAPI,只要将相关的包引用即可. 1.这…
1.使用Swashbuckle实现 Swashbuckle 是.NET类库,可以将WebAPI所有开放的控制器方法生成对应SwaggerUI的JSON配置.再通过SwaggerUI 显示出来.类库中已经包含SwaggerUI .所以不需要额外安装. 2.快速开始.前提已有webapi项目 查看webapi项目属性,在[生成]选项卡中勾选X[ML文档文件].在编译过程中会生成一个注释文件 使用NuGet包将Swashbuckle库添加到在webapi项目中 引用后,在App_Start文件夹下会生…
Net Core WebApi几种版本控制对比 一.版本控制的好处: (1)有助于及时推出功能, 而不会破坏现有系统. (2)它还可以帮助为选定的客户提供额外的功能. API 版本控制可以采用不同的方式进行控制,方法如下: (1)在 URL 中追加版本或作为查询字符串参数, (2)通过自定义标头和通过接受标头 在这篇文章中, 让我们来看看如何支持多个版本的 ASP.NET  Core  Web API. 一.创建asp.net core webapi 项目,引用NuGet包:Install-Pa…