所以我正在构建新的数据服务,并认为我会使用web api odata。所以我使用脚手架为我的项目添加了一个控制器,为我的实体框架模型类生成动作。在我尝试生成的put或patch方法之前,一切都很顺利。来自url的guid Id绑定,但无论我尝试什么,我都无法绑定Delta变量。它始终为空。经过一天的谷歌搜索,我找不到比2011年更新的东西,这些解决方案不起作用。有谁知道如何让这些绑定?
方法签名
[AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] Guid key, Delta<AttachmentProposal> patch)
我的网络API配置
public static void Register(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<AttachmentProposal>("AttachmentProposals");
builder.EntitySet<AttachmentAction>("AttachmentActions");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
config.MapHttpAttributeRoutes();
我的模型类似于
public Guid Id { get; set; }
public string name { get; set; }
public DateTime createDate { get;set; }
public virtual HashSet<AttachmentActions> {get; set;}
如果它有任何区别我总是试图发送json。典型的请求正文我试过就像
{ name: 'some name' }
或
{ every: 'value', single: 'value', property: 'value', on: 'value', my: 'value' model: 'value' }
答案 0 :(得分:0)
通过制作一个控制台应用程序来引用答案,并引用该服务并观察流量。如果有其他人遇到这个问题,请尝试添加odata.type:&#34;你的对象的类型是什么&#34;到请求中的json