2017-05-04 56 views
0

因此,我正在構建新的dataservices,並且認爲我會使用web api odata。所以我使用腳手架爲我的項目添加了一個控制器來爲我的實體框架模型類生成動作。一切都很好,直到我嘗試生成的put或patch方法。來自url的guid Id綁定,但無論我嘗試什麼,我都無法綁定Delta變量。它始終爲空。經過一天的搜索,我找不到比2011年更新的東西,這些解決方案無法正常工作。有誰知道如何讓這些綁定?如何綁定Delta <T>在web api2 odata 3控制器

方法簽名

[AcceptVerbs("PATCH", "MERGE")] 
public async Task<IHttpActionResult> Patch([FromODataUri] Guid key, Delta<AttachmentProposal> patch) 

我的Web 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

想出答案通過使一個控制檯應用程序使用該服務的引用,並觀看繁忙的交通。如果有其他人有這個問題嘗試添加odata.type:「什麼是你的對象的類型是」在請求中的json