使用Untyped模型向WebAPI OData控制器提交表单
本文关键字:控制器 提交 表单 OData WebAPI Untyped 模型 使用 | 更新日期: 2023-09-27 18:06:33
我在我的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