首页 > 解决方案 > 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]属性放在控制器方法参数之前,但它不起作用。

所以,我遇到的问题是“二”仍然被分配了一个值,即使我明确告诉我只想绑定“一”。

难道我做错了什么?

标签: c#asp.net-core-mvc

解决方案


它似乎[Bind]不适用于 JSON,所以没有办法解决这个问题,至少对于我的用例来说。

请参阅:https ://github.com/aspnet/Mvc/issues/8005和https://github.com/aspnet/Mvc/issues/5731


推荐阅读