使用Untyped模型将表单发布到WebAPI OData控制器

时间:2015-08-06 06:40:56

标签: 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为null。

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> 

1 个答案:

答案 0 :(得分:1)

是的,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