c# - BindAttribute 似乎在 ASP.Net MVC Core (2.0.8) 中不起作用
问题描述
我正在尝试使用 Bind 属性在我的模型中仅包含特定属性。我知道我可以使用视图模型并且只指定我需要的属性,但我不能使用它,因为代码必须运行一些静态代码分析,如果 Bind 属性不存在就会触发错误,我可以'不要改变那个规则(它不受我控制)。
这是我尝试过的。
模型:
[Bind("One")]
public class SomeModel
{
public int One { get; set; }
public int Two { get; set; }
}
控制器方法:
[HttpPost("foo")]
[Consumes("application/json")]
public IActionResult Foo([FromBody] SomeModel model)
{
return Json(model);
}
我在 POST 中发送的内容:
{
"One": 1,
"Two": 2
}
我得到的回应:
{
"One": 1,
"Two": 2
}
我也尝试将[Bind]
属性放在控制器方法参数之前,但它不起作用。
所以,我遇到的问题是“二”仍然被分配了一个值,即使我明确告诉我只想绑定“一”。
难道我做错了什么?
解决方案
它似乎[Bind]
不适用于 JSON,所以没有办法解决这个问题,至少对于我的用例来说。
请参阅:https ://github.com/aspnet/Mvc/issues/8005和https://github.com/aspnet/Mvc/issues/5731
推荐阅读
- java - 通过其类的两个实例使用扩展线程导致跳过值
- sql-server - 在指定资源组的特定订阅下部署不带 DependsOn 的 ARM 模板
- angular - 在多个动态子域上运行 Angular App
- python - 更新玩家时间mysql
- python - 如何使用 pytest 在 python 中对“request.form”进行单元测试?
- python - Pytest 在多个测试中调用相同的函数导致泄漏
- javascript - 如何在Javascript中的其他div中显示鼠标跟随的圆圈的位置
- python - pie() 缺少 1 个必需的位置参数:'x'
- angular - 我无法从我的计算机访问 Windows Server iis 上的 .net 核心后端
- python - 对于方形 20 节点六边形元素中不同高斯积分点的雅可比行列式,我得到了不同的符号,这是正确的吗?MWE