腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
DOTNET
专栏成员
举报
62
文章
108788
阅读量
32
订阅数
订阅专栏
申请加入专栏
全部文章(62)
asp.net(20)
api(13)
.net(11)
数据库(10)
mongodb(10)
其他(9)
mvc(9)
sql(7)
存储(3)
https(3)
c#(2)
云数据库 SQL Server(2)
面向对象编程(2)
安全(2)
java(1)
xml(1)
ide(1)
eclipse(1)
windows server(1)
spring(1)
人工智能(1)
http(1)
编程算法(1)
开源(1)
分布式(1)
缓存(1)
shell(1)
hadoop(1)
单元测试(1)
windows(1)
数据结构(1)
ui(1)
winform(1)
搜索文章
搜索
搜索
关闭
ASP.NET Web API编程——模型验证与绑定
asp.net
api
1.模型验证 使用特性约束模型属性 可以使用System.ComponentModel.DataAnnotations提供的特性来限制模型。 例如,Required特性表示字段值不能为空,Range特性限制数值类型的范围。 对实体类使用特性后,可以使用ModelState.IsValid来判断验证是否通过。 例: 实体: public class DataModel { public int Id { get; set; } public string Field1Nam
甜橙很酸
2018-04-18
3K
0
ASP.NET MVC编程——单元测试
asp.net
mvc
单元测试
1自动化测试基本概念 自动化测试分为:单元测试,集成测试,验收测试。 单元测试 检验被测单元的功能,被测单元一般为低级别的组件,如一个类或类方法。 单元测试要满足四个条件:自治的,可重复的,独立的,快速的。 自治的是指:关注于验证某个单一功能,例如只关注于类的某个方法的功能。 可重复的是指:无论何时允许同一段测试代码都应该得到相同的结果。 独立的是指:不依赖与其他任何系统或单元测试。 快速的是指:所有测试都应快速地完成, 集成测试 验证两个或多个组件之间的交互。 验收测试 确保已构建的系统实现了既定的全部功
甜橙很酸
2018-04-17
2.2K
0
ASP.NET Web API编程——控制器
asp.net
1控制器操作的参数 控制器操作的参数可以是内置类型也可以是自定义类型,无参也是允许的。 2控制器操作返回值 类型 说明 void 操作返回值为void时,Web API返回空HTTP响应,其状态码为204(无内容) HttpResponseMessage Web api会将此返回值直接转换为HTTP消息 IHttpActionResult 接口形式 内置类型或自定义类型 无 2.1返回值为HttpResponseMess
甜橙很酸
2018-04-17
2.3K
0
ASP.NET MVC编程——视图
asp.net
mvc
1Razon语法 使用@符号后接C#或VB.NET语句的方式。 基本规则 1)变量 @后直接变量即可 2)代码块 为使用表达式或多行代码,@后跟大括号将多行代码包括在大括号中 3)“+” 对于加号连接的两个字符串变量或属性,使用小括号将他们括起来 4)插入HTML或文字 每一行前面加上“@:” 5)使用注释 使用@*和*@将要注释的部分包起来 6)用@@在页面上显示@ @using 在一个View中引入此页所需程序集的命名空间。 还可以在web.config中配置命名空间,不过将对所有的View起作用。 <
甜橙很酸
2018-03-30
3K
0
ASP.NET MVC编程——控制器
asp.net
mvc
每一个请求都会经过控制器处理,控制器中的每个方法被称为控制器操作,它处理具体的请求。 1操作输入参数 控制器的操作的输入参数可以是内置类型也可以是自定义类型。 2操作返回结果 结果类型 调用方法 备注 ContentResult Content 文本类型 FileContentResult/FileStreamResult/FilePathResult File 文件类型 HttpStatusCodeResult(HttpNotFou
甜橙很酸
2018-03-30
2.2K
0
ASP.NET MVC编程——验证、授权与安全
asp.net
mvc
1 验证 一般采用表单验证完成登陆验证,建议结合SSL使用。为限制控制器只能执行HTTPS,使用RequireHttpsAttribute 2 授权 对账户的权限的控制可以通过在控制器或控制器操作上加AuthorizeAttribute 属性。 扩展授权过滤器 扩展授权过滤器可以定义继承自AuthorizeAttribute的类,也可以定义同时继承自FilterAttribute, IAuthorizationFilter接口的类。 [AttributeUsage(AttributeTargets
甜橙很酸
2018-03-30
3.1K
0
ASP.NET MVC编程——模型
asp.net
mvc
1 ViewModel 是一种专门提供给View使用的模型,使用ViewModel的理由是实体或领域模型所包含的属性比View使用的多或少,这种情况下实体或领域模型不适合View使用。 2模型绑定 默认模型绑定器 通过DefaultModelBinder解析客户端传来的数据,为控制器的操作参数列表赋值。 显示模型绑定 使用UpdateModel和TryUpdateModel显示绑定模型,不会检验未绑定字段。 使用UpdateModel方法绑定模型时,如果绑定失败就会抛异常,而TryUpdateModel不会
甜橙很酸
2018-03-30
2.4K
0
ASP.NET MVC编程——路由
asp.net
mvc
框架自动生成的路由配置 上图中,路由配置文件为App_Start文件夹下的RouteConfig.cs。 代码如下: public class RouteConfig { public
甜橙很酸
2018-03-30
1.7K
0
ASP.NET MVC编程——错误处理与日记
asp.net
mvc
ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理。使用配置文件可以帮助我们处理异常,但是不够灵活和全面;使用HandleErrorAttribute、自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误,也无法处理404错误,即使将错误过滤器注册为全局过滤器也是如此。有时候需要多种方法配合使用。 在捕获错误的地方,可以将有用的信息记录下来,便于我们查出引起问题的原因和纠正错误。 1启
甜橙很酸
2018-03-30
1.5K
0
ASP.NET MVC编程——缓存
asp.net
mvc
Web缓存分为服务端缓存和客户端缓存。 1 服务端缓存 1.1请求域内的缓存:HttpContext.Items 类型: HttpContext.Items的类型为IDictionary,且键和值都是object类型 访问性: 只存在于当前请求范围内。 例: HttpContext.Items["key"] ="value"; var value = HttpContext.Items["key"]; 1.2用户域内的缓存:HttpContext.Session 类型: HttpContext.Sessio
甜橙很酸
2018-03-30
1.8K
0
asp.net web api 向客户端返回错误信息
asp.net
api
1使用Http状态码 ASP.NET Web Api框架提供了Http状态码的值,如下图所示。 虽然有这些预定义的状态码,但在实际项目中使用自定状态码结合预定义状态码更有优势。 通过在适当的位置抛出异
甜橙很酸
2018-03-08
2.8K
0
asp.net web api 构建api帮助文档
asp.net
api
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架。 2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目引入了MVC框架开发包,使得项目看起来杂乱。 2)自带的Help Pages框架无法针对Odata控制器生成API文档。 3 问题解决方案 1)独立Help Pages项目,以插件形式添加服务 步骤1,添加类ServiceAssembliesResolver,获得服务集 /// <summary>
甜橙很酸
2018-03-08
1.2K
0
asp.net web api 使用Odata
asp.net
api
路由配置 routePrefix路由前缀,必须含有Odata字符串,否则路由不到Odata控制器。 V1表示版本,可以使用这种方式进行版本控制,也可以使用其他方式。 config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);这样配置使Odata操作符可用(Web Api2的旧版本不必如此设置)。 public static class WebApiConfig { public static void Register(
甜橙很酸
2018-03-08
1.3K
0
asp.net web api 下载之断点续传
asp.net
api
一、基本思想 利用 HTTP 请求的Range标头值,来向服务端传递请求数据的开始位置和结束位置。服务端获得这两个参数后,将指定范围内的数据传递给客户端。当客户端请求暂停或中断之后,待到客户端再次向服务器发起请求,继续下载数据时,客户端传递给服务端的Range值说明了向服务端请求数据的范围,即从上一次中断传输的位置开始直到最后。 二、示例代码 1 DownloadCore:完成下载任务 public class DownloadCore<T> { private HttpReques
甜橙很酸
2018-03-08
1.1K
0
asp.net web api 接口安全与角色控制
asp.net
api
安全
1 API接口验证与授权 JWT JWT定义,它包含三部分:header,payload,signature;每一部分都是使用Base64编码的JSON字符串。之间以句号分隔。signature是”header.payload”经加密后的字符串。 采用JWT实现验证与授权检验机制,JWT格式为: header : { "typ": "JWT", "alg": "HS256" } payload:appid为GUID,timestamp为unix时间戳 { "appid": GUID,
甜橙很酸
2018-03-08
1.5K
0
asp.net web api 使用自签名SSL证书
asp.net
api
https
1自签名SSL证书的创建 创建自签名SSL工具xca为:https://sourceforge.net/projects/xca/ 创建过程 1)创建根证书 打开软件,界面如下。 点击 ,看到下拉菜单
甜橙很酸
2018-03-08
2.5K
0
asp.net web api 文件上传
asp.net
api
首先分别介绍正确的做法和错误的做法,然后分析他们的不同和错误之处,以便读者在实现此功能时可避开误区 1正确的做法 public class AvaterController : BaseApiController { [HttpPost] public async Task<IHttpActionResult> UploadAvater(int userId) { AvatarBLL pictureBLL = new AvatarBLL(this.Re
甜橙很酸
2018-03-08
5K
0
asp.net web api 异常捕获
asp.net
api
1 向客户端发送错误消息 使用throw new HttpResponseException()向客户端抛出错误信息。 HttpResponseException包含两个重载的构造函数,其中一个是构造函数参数类型为HttpResponseMessage,通过其设置状态码,错误消息短语以及消息体内容来向客户端抛出比较详细的错误信息。另一个参数类型为HttpStatusCode,只能设定状态码。 2自定义异常过滤器 扩展IExceptionFilter来定义异常过滤器。异常过滤器不会捕获类型为HttpRespo
甜橙很酸
2018-03-08
1.7K
0
asp.net web api 版本控制
asp.net
api
版本控制 版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionControllerSelector来选择控制器过滤器,而不是直接选择控制器。 采用此机制来控制版本,应按照如下规则命名控制器: 自定义标识符+版本+Controller 自定义标识符:能体现控制器含义的字符串 版本:表示版本的字符串,例如:V1,V1.0;不建议使用V1.0这样的写法,因为这样控制器名称会相当怪异,如果表示小版本号
甜橙很酸
2018-03-08
1.8K
0
asp.net web api客户端调用
asp.net
api
服务接口 接口1: //Post:http://127.0.0.1/HY_WebApi/api/V2/Key/FunctionTest1 [HttpPost] public HttpResponseMessage FunctionTest1(Model1 model) { ...... } 接口2: //Post:http://127.0.0.1/HY_WebApi/api/V2/Key/FunctionTest2 [HttpPost] public HttpResponseMess
甜橙很酸
2018-03-08
3.4K
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档