Web API OData忽略客户端添加的属性

Web API OData忽略客户端添加的属性,odata,asp.net-web-api2,Odata,Asp.net Web Api2,当我使用WebApi Odata v4调用Put到我的服务器时,我得到一个错误 { "error": { "code": "", "message": "The request is invalid.", "innererror": { "message": "job : The property 'test' does not exist on type 'Model.Temp'. Make sure to onl

当我使用WebApi Odata v4调用Put到我的服务器时,我得到一个错误

{
    "error": {
        "code": "",
        "message": "The request is invalid.",
        "innererror": {
            "message": "job : The property 'test' does not exist on type 'Model.Temp'. Make sure to only use property names that are defined by the type.\r\n",
            "type": "",
            "stacktrace": ""
        }
    }
}
发生此错误是因为未在模型“Temp”中设置属性“test”。它实际上是由javascript添加的,并且只在客户端使用


如何使OData忽略模型中不可用的属性?

有一种方法可以处理您的场景。不是忽略属性,而是通过将实体类型定义为开放类型来接受它们,以便它可以从客户端接受模型中未定义的动态属性,并在必要时存储它们以供将来查询


您可以找到以下实现开放式支持的教程:

谢谢。虽然这意味着我需要再添加一个属性,但我现在可以接受这个解决方案。如果有一种方法可以作为一个整体来做,也许会更好config@Habibi&yiding,我认为在这里“开设实体”不是正确的选择。您不应该发送值并期望服务器忽略它们。打开的实体应该保留动态属性,而不是忽略它们。以我的拙见,我认为虽然提议的解决方案会起作用,但对于服务来说,这是一个糟糕的设计。