c# - 使用无类型模型将表单发布到 WebAPI OData Controller

标签 c# json asp.net-web-api odata

我的 edm 中有一个无类型模型,定义如下:

<EntityType Name="Content">
  <Key>
    <PropertyRef Name="Id"/>
  </Key>
  <Property Name="Id" Type="Edm.Guid"/>
  <Property Name="Title" Type="Edm.String"/>
</EntityType>

当我尝试从 html 表单提交请求时,我的 POST 操作中的 IEdmEntityObject 为空。

public HttpResponseMessage Post(IEdmEntityObject entity)

这适用于 json - 实体充满了属性,但 odata 反序列化器似乎不理解 application/x-www-form-urlencoded mime-type

<form method="POST" action="http://localhost/api/odata/content">
    Title:<br>
    <input type="text" name="Title" value="Mouse">
    <br>
    <input type="submit" value="Submit">
</form> 

最佳答案

是的,WebApi OData不支持这种格式,你可以查看代码https://github.com/OData/WebApi/blob/master/OData/src/System.Web.OData/OData/Formatter/ODataMediaTypeFormatters.cs 和规范 http://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html

或者您可以自定义格式化程序,这可能很难,但是任何进一步的问题或请求都可以在 github https://github.com/OData/WebApi 中打开问题

关于c# - 使用无类型模型将表单发布到 WebAPI OData Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31848493/

相关文章:

c# - 如何沿轴旋转字符串列表?

ios - swift 3 json序列化

json - BotFramework-WebChat - 自适应卡片

asp.net-web-api - 将 WebApi OData v3 项目升级到 OData v4

javascript - 如何 "join"2个 Angular 网络请求

c# - 与 ContentTemplate 中的 Bindings 和 DataContext 混淆

c# - IEnumerable foreach,对最后一个元素做一些不同的事情

c# - 方法的最大参数数量是多少(WebApi?)

c# - 在 Entity Framework 6 中使用 SqlQuery<Dictionary<string, string>>

javascript - 获取特定剑道网格列中的所有值