P23 自定义Model绑定器

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P23 自定义Model绑定器相关的知识,希望对你有一定的参考价值。


技术图片
一组资源,需要一组key
创建新的Action。参数从路由里面获得
技术图片
.net core允许我们使用自定义的Model绑定。下面就来创建一个自定义的Model绑定器。创建Helpers文件夹。
技术图片
创建类
技术图片
它需要实现IModelBinder接口,然后重写方法。ModelBindingContext里面有一些元数据
技术图片
首先我们的参数是IEnumerable类型的,所以我们要保证ModelBindingContext作用域IEnumerable类型
判断if如果不是作用域Enumerable类型那么就返回失败。
技术图片

获取的value是个字符串,如果字符串为空的 也表示传递是成功的 返回success
技术图片

技术图片
技术图片
最终返回类型
技术图片
最终再返回Task.CpmpletedTask
技术图片

技术图片
value关键字有问题是因为上面有的没有返回值。
技术图片
把返回值加上就可以了
技术图片

Controller上使用ModelBinder

技术图片

技术图片

处理Post的Action的返回

应该返回的状态是201使用CreateAtRoute
给这个action增加Name值。
技术图片

技术图片

运行测试

技术图片

技术图片
Header里面的Location
技术图片
把Location的值复制出来
技术图片
获得了这三个公司信息
技术图片

在这里加上小括号
技术图片
这样在请求的时候就可以加上小括号了
技术图片

这样就很明显的可以看到id的组合用括号括起来
技术图片

另外这种key value的形式就也可以自定义ModelBinder的形式去写了。
技术图片
 

结束

 

以上是关于P23 自定义Model绑定器的主要内容,如果未能解决你的问题,请参考以下文章

Web API 验证不使用自定义模型绑定器触发

属性的自定义配置绑定器

没有绑定器的 RxSwift 自定义数据类型转换

将自定义模型绑定器应用于 asp.net 核心中的对象属性

使用自定义模型绑定器的递归模型绑定

自定义模型绑定器未针对 ASP.NET Core 2 中的单个属性触发