首页 > 解决方案 > 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] 属性之间的关键区别。

标签: c#.net

解决方案


据我记得,在处理 MVC 操作参数时,您通常会接收 ViewModel 或业务实体,并且包含 [Bind] 属性以防止过度发布或批量分配模型绑定攻击,这种方式在模型绑定期间仅关联指定的属性.

相反,在 WebAPI 中,您主要接收直接表示数据协定的参数,因此您不太可能希望在绑定过程中省略某些属性。


推荐阅读