首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET Web API编程——模型验证与绑定

这里从URI获取值具体指:从路由词典中获取值或者从URI的查询字符串中获取值。具体过程见介绍路由那篇博文。 2)对于复杂类型,Web API会使用多媒体格式化器从消息体中获得值。...这样按照默认的规则就可以从URI中获取值来构建参数列表了。 例:使用TypeConverter特性指明所使用的类型转换器。...[FromUri] 为了强制Web API从URI中取值,可以使用FromUri特性。...这样即使操作(Action)参数是复杂类型,框架也会中URI中取值来为参数赋值。 使用[FromBody] 为了强制Web API从消息体中取值,可以使用FromBody特性。...这里从URI获取值具体指:从路由词典中获取值或者从URI的查询字符串中获取值。具体过程见介绍路由那篇博文。对于复杂类型,Web API会使用多媒体格式化器从消息体中获得值。

3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    再说表单验证,在Web Api中使用ModelState进行接口参数验证

    其中一位园友提到了说可以使用MVC的ModelState,因为之前通常都在Web项目中用没在Api项目用过,想想Api方法接收的多参数都封装成了一个实体类,独立于数据Model层,这样其实很方便用ModelState...认识ModelState 我们都知道在MVC中使用ModelState实现表单验证非常简单,借助jquery.validate.unobtrusive这个插件就能轻松的在页面上输出错误信息,详细的介绍可以参考这篇文章...再看看ModelState类型是个什么鬼: [Serializable] public class ModelState { // Fields private ModelErrorCollection...Errors { get; } public ValueProviderResult Value { get; set; } } 看它有两个属性Errors和Values,从它们的类型名称就能看出到底是干嘛的了...当然了,这个Attribute我指定了使用范围包含Class,直接打在Controller上面也是阔以滴~这样就不用每个Action都写了。

    2.4K50

    Asp.NetCore Web开发之输入验证

    所以进行数据有效性验证是必要的,我们一般通过js或者使用HTML标签自带的属性进行有效性限制,但在不断的演化中,也出现了一些很优秀的数据验证框架,使用它们能高效的开发,最常用的就是基于Jquery的jquery.validate.js...该框架默认支持的规则有: 规则名 取值 描述 required true|false 必填字段 email true|false 电子邮件格式 date true|false 日期格式 number true...以上就是该框架的大体用法,但解释此用法不是本节的主要目的,我们了解了它的用法后,接下来介绍一个更简单的用法:asp.net core的输入验证,为了简化表单验证的代码量,asp.net core 从后端出发...在需要验证PersonData的Action中,我们就可以进行验证,代码如下: Console.WriteLine(ModelState.IsValid); foreach (var prop in ModelState.Values...ModelState.Values就是代表一个个PersonData中的属性值,这是外层循环,又因为,验证可能为多个,所以通过第二层循环遍历该属性所有的错误信息,现在来测试一下: 直接输入12,控制台打印结果如下

    2K30

    我这么玩Web Api(二)

    ModelState   我理解的ModelState是微软在ASP.NET MVC中提出的一种新机制,它主要实现以下几个功能:   1....("Get", new { symbol = stock.Symbol }, stock); }   Swashbuckle Help Page测试效果如下:   如何使用Help Page可参考我上一篇文章...四、全局数据验证   我们在使用数据验证的时候,往往会出现许多重复的代码,如下图: ?   有没有办法减少这些重复的代码呢?...我从“Model Validation in ASP.NET Web API”这篇文章中找到了方法。   首先,我们需要写一个GlobalActionFilterAttribute。...); } } } 五、单元测试   我使用BDD的风格编写单元测试,关于BDD的详细信息,可查看我之前的文章《行为驱动开发(BDD)实践示例》。

    1.4K60

    Model验证系统运行机制是如何实现的?

    中] 目录 一、从ModelState谈起 二、实例演示:验证Model绑定过程中对ModelError的设置 三、验证消息的呈现     HtmlHelper.ValidationMessage...    HtmlHelper.ValidationSummary     错误消息在EditForModel方法中的呈现 四、 Model绑定与Model验证 一、从ModelState...三、验证消息的呈现 Model的验证过程伴随着Model绑定,当ModelBinder从请求中提取相应的数据为目标Action方法绑定参数值后,验证错误信息已经以ModelError的形式保存到相应的ModelState...而ModelState列表属于ViewData的一部分,所以可以直接在View中被使用,这对错误信息在View中的呈现提供了可能。现在我们就来讨论验证信息在View中的呈现问题。...如果没有通过参数validationMessage显式指定了验证消息,那么就会通过modelName找到相应的ModelState对象,从其Errors属性表示的ModelErrorCollection

    1.8K110

    低代码系列之代码生成器模型配置--filter

    label: '优惠券名称', type: 'text', } } filters里面的属性必须在fields里面存在,换句话是filters的键必须从fields...键名就是字段名 label:为提示文字 type:为表单类型 分类查询 本地分类查询 本地分类的意思是分类是写死的并没有纳入系统管理 filters: { person: {...} 也就是person必须配置chineseMap属性 此时会在视图生成如下表单 外键分类查询 外键分类查询的意思是,分类项并不是写死,分类项是一张单独的表,或者有单独管理作用 这个时候要想正常使用外键分类查询你需要进行如下配置..., type: 'select' }, }, foreign: { // key 表示外键名称...gt 大于 gte大于等于 lt 小于 lte 小于等于 ne 不等于 eq 等于 默认情况下sign取值为gte 双日期查询 查询两个日期之间的记录 fields: {

    42620

    讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    自动模型状态验证 这个是重点,框架会帮你自动验证model的state,也就是ModelState....} } 顺道说一下,ModelStateInvalidFilter是个公共类,所以,不用ApiControllerAttribute也可以使用它。...ASP.NET Core MVC里面有一个比较令人恼怒的问题你需要手动给参数指定[FromBody]这个特性,以便让系统知道如何从Request body里面反序列化他们,比如反序列化json。...除此之外,如果一个参数在route里面定义了,他会自动从先从path,也就是url上尝试绑定,不行的话会去从查询参数上绑定。IFormFlie默认从form表单上绑定获取。...集中的路由机制不会应用在API controller,框架要求只能使用基于特性的路由,即在action上指定[Route("XXX")]的方式。 5.

    67220

    讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    自动模型状态验证 这个是重点,框架会帮你自动验证model的state,也就是ModelState....} } 顺道说一下,ModelStateInvalidFilter是个公共类,所以,不用ApiControllerAttribute也可以使用它。...ASP.NET Core MVC里面有一个比较令人恼怒的问题你需要手动给参数指定[FromBody]这个特性,以便让系统知道如何从Request body里面反序列化他们,比如反序列化json。...除此之外,如果一个参数在route里面定义了,他会自动从先从path,也就是url上尝试绑定,不行的话会去从查询参数上绑定。IFormFlie默认从form表单上绑定获取。...集中的路由机制不会应用在API controller,框架要求只能使用基于特性的路由,即在action上指定[Route("XXX")]的方式。 5.

    72320

    猿学-讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    自动模型状态验证 这个是重点,框架会帮你自动验证model的state,也就是ModelState....} } 顺道说一下,ModelStateInvalidFilter是个公共类,所以,不用ApiControllerAttribute也可以使用它。...ASP.NET Core MVC里面有一个比较令人恼怒的问题你需要手动给参数指定[FromBody]这个特性,以便让系统知道如何从Request body里面反序列化他们,比如反序列化json。...除此之外,如果一个参数在route里面定义了,他会自动从先从path,也就是url上尝试绑定,不行的话会去从查询参数上绑定。IFormFlie默认从form表单上绑定获取。...集中的路由机制不会应用在API controller,框架要求只能使用基于特性的路由,即在action上指定[Route("XXX")]的方式。 5.

    1K00

    dotNET Core 3.X 使用 Web API

    3.x 和 2.x 区别 1、Program 类的 IWebHostBuilder 修改为了 IHostBuilder,这一块的改动如果是直接使用 3.x 可以不用过于关心,如果是从 2.x 升级到 3...ModelState.IsValid) { return BadRequest((ModelState)); } return Ok(); } 5、再用 Postman...输入参数 模型绑定 接口的输入参数就是通过模型绑定将 HTTP 请求中的值映射到参数中,模型绑定有以下六种: [FromRoute]:通过路由的 URL 中取值,可以自动推断; [FromQuery]:...获取 URL 地址中的参数,可以自动推断; [FromBody]:从HTTP Body取值,通常用于取JSON, XML,可以自动推断; [FromHeader]:获取 Request Header 中的参数信息...context => { var details = new ValidationProblemDetails(context.ModelState

    1.6K30
    领券