c# - Web API 中缺少 [Bind] 属性的原因
问题描述
MVC 的控制器脚手架生成 [Bind] 属性。
public async Task<IActionResult> Create([Bind("InfoId
,UserName,BranchId,BranchName,CustomerName")] Info info)
API 的脚手架不会生成该属性。
public async Task<ActionResult<Info>> PostVerificationInformation(Info info)
我正在寻找这两个生成的代码 wrt [Bind] 属性之间的关键区别。
解决方案
据我记得,在处理 MVC 操作参数时,您通常会接收 ViewModel 或业务实体,并且包含 [Bind] 属性以防止过度发布或批量分配模型绑定攻击,这种方式在模型绑定期间仅关联指定的属性.
相反,在 WebAPI 中,您主要接收直接表示数据协定的参数,因此您不太可能希望在绑定过程中省略某些属性。
推荐阅读
- python - 计算熊猫数据框中日期时间间隔之间的实例数
- vue.js - 在鼠标悬停时切换文本
- java - 无法将画布恢复到早期状态
- html - 如何在保持图像纵横比的同时增加图像高度
- javascript - 当对象值的条件大于 5 时输出对象键
- cpu-usage - 如何在多租户环境中查找整体 CPU 使用率?
- amazon-web-services - Amazon Transcribe 是否始终需要使用 S3 存储?
- python - 写入 SQL 数据库时出现 I/O 错误
- python-3.x - 无法在 Django 中删除 delete_view 中的对象
- java - OData 函数遇到无效的类型转换。类型不能从 '
'