Web Api 使用模型验证
public class Person
{
public int Id { get; set; }
[Required(ErrorMessage = "姓名不能为空啊啊啊!")]
public string Name { get; set; }
[Range(, , ErrorMessage = "年龄只能在18-25之间(包含18,25)")]
public int Age { get; set; }
}
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
//首先验证有否有入参,因为模型验证只能验证参数对不对,而无法验证有没有
var flag = actionContext.ActionArguments.Values.First() == null;
if (flag)
{
//返回错误消息方法一
actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent("入参为空")
};
}
//如果有入参,再验证对不对
else if (!actionContext.ModelState.IsValid)
{
var values = actionContext.ModelState.Values;
// Errors 是个集合的原因是:一个属性有可能有多个验证规则
var errorMessageList = values.SelectMany(ss => ss.Errors.Select(s => s.ErrorMessage));
var errorMessage = string.Join(",", errorMessageList);
//返回错误消息方法二
actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
}
}
}
[HttpPost]
[ValidateModel]
public void TestParam(Person person)
{
}
测试结果一:
var url = "http://localhost:57895/api/test/TestParam";
, name: }
$.ajax({
url: url,
type: "post",
data: data
});

测试结果二:
var url = "http://localhost:57895/api/test/TestParam";
, name: }
$.ajax({
url: url,
type: "post",
//data: data
});

Web Api 使用模型验证的更多相关文章
- ASP.NET Web API编程——模型验证与绑定
1.模型验证 使用特性约束模型属性 可以使用System.ComponentModel.DataAnnotations提供的特性来限制模型. 例如,Required特性表示字段值不能为空,Range特 ...
- .Net Core Web Api使用模型验证验证参数合法性
在接口开发过程中免不了要去验证参数的合法性,模型验证就是帮助我们去验证参数的合法性,我们可以在需要验证的model属性上加上Data Annotations特性后就会自动帮我们在action前去验证输 ...
- 基于gin的golang web开发:模型验证
Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发 ...
- ASP.NET Web API 管道模型
ASP.NET Web API 管道模型 前言 ASP.NET Web API是一个独立的框架,也有着自己的一套消息处理管道,不管是在WebHost宿主环境还是在SelfHost宿主环境请求和响应都是 ...
- Web API接口 安全验证
在上篇随笔<Web API应用架构设计分析(1)>,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端 ...
- ASP.NET WEB API 自定义模型校验过滤器
对外公开WEB接口时,对模型校验是常见的安全常识,常见的写法是在controller中判断ModelState.IsValid,以注册用户API为例. Model: public class Regi ...
- Asp.NetCore Web开发之模型验证
在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的. 所以进行数据有效性验证是必要的,我们一般通 ...
- 关于filter web api mvc 权限验证 这里说的够详细了。。。
参考:http://www.cnblogs.com/willick/p/3331520.html Filter(筛选器)是基于AOP(面向方面编程)的设计,它的作用是对MVC框架处理客户端请求注入额外 ...
- ASP.NET Web API模型验证以及异常处理方式
ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations. 具体来说,比如有:[Required(Erro ...
随机推荐
- Python标准库概览
Python标准库通常被称为"自带的电池",自然地提供了广泛的功能,涵盖了大概200个左右的包与模块.不断有高质量的包或模块被开发出来,极大的丰富了标准库.但有些模块放在标准库中很 ...
- To Fill or Not to Fill (贪心)
转自:https://www.cnblogs.com/XBWer/p/3866486.html With highways available, driving a car from Hangzhou ...
- Topshelf 一个简化Windows服务开发的宿主服务框架
Topshelf是 基于.net框架开发的宿主服务框架.该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务.之所以这样原因非常简单:调试一个控 ...
- .net core2.0半年的使用经验之前言
目录 前言 使用dapper做数据层调用 使用T4模板生成 使用缓存 使用swagger做接口文档(非restful) 使用identity做身份认证 使用jwt做身份认证 使用CORS跨域 调用we ...
- if语句2017-03-17
1.If语句: if(判断条件){ 判断为true的时候执行的语句 } else{ 判断为false的时候执行的语句 } 2.If else语句: if(判断条件){ 判断为true的时 ...
- iOS 组件化的几篇文章
随着工程的成长,开发人员的增多,合理的模块划分及低耦合的重要性显得愈发重要.最近在思考这方面的问题,也读了不少通过组件化解耦的文章,这里记录一下. 前 5 篇文章有些关联,建议阅读顺序,1.3.2.4 ...
- async generator promise异步方案实际运用
es7 async方案 /******************async***********************/ var timeFn=function(time){ return new P ...
- UnderScore的使用实例记录
集合操作 _.range(),主要用于区间的获取操作.参数说明:(param1):范围上限,(param1,param2):起始及结束范围,(param1,param2,param3):起始结束范围, ...
- Maven-07: 插件的自定义绑定
除了内置绑定以外,用户还能够自己选择将某个插件目标绑定到生命周期的某个阶段上,这种自定义绑定方式能让Maven项目在构建过程中执行更多更富特色的任务. 一个常见的例子是创建项目的源码jar包.内置的插 ...
- 设置placeholder字体的颜色
::-webkit-input-placeholder { /* WebKit browsers */ color:#999; } :-moz-placeholder { /* Mozilla Fir ...