当我更新模型时,它会抛出"不支持非开放类型的非类型值"。它在更新之前正在工作。无法确定问题的根源。 有任何想法吗。
答案 0 :(得分:13)
之前我遇到过这个错误,它是由传递数据模型上不存在的JSON对象的属性引起的。
例如,给定数据模型:
public class User
{
public long UserId { get; set; }
public string UserName { get; set; }
}
OData控制器的方法是:
public IHttpActionResult Post(User user)
使用POST
方法发送以下数据时:
{
"UserId":"0",
"UserName":"test",
"UserPassword":"test"
}
然后服务器将返回错误400并带有以下响应:
{
"error": {
"code": "",
"message": "The request is invalid.",
"innererror": {
"message": "user : Does not support untyped value in non-open type.\r\n",
"type": "",
"stacktrace": ""
}
}
}
因此,如果从使用UserPassword
方法发送的数据中删除POST
属性(在此示例中),则不会发生错误。