【发布时间】:2017-10-02 00:44:21
【问题描述】:
所以我正在构建新的数据服务,并认为我会使用 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' }
【问题讨论】:
标签: json entity-framework asp.net-web-api2 odata model-binding