如何让WebAPI在不使用C#属性的情况下接受一个复杂对象作为DELETE HTTP谓词的参数
How do I get WebAPI to accept a complex object as its argument for a DELETE HTTP verb without using C# attributes?
我在服务器上使用C#/WebAPI,在客户端上使用AngularJS。
给定一个类似WebAPI控制器上的public void Delete(MyClass m)
的方法和一个由值对象组成的类MyClass
,我如何使用$http
格式化HTTP DELETE请求而不在C#中指定属性(即[FromUri]
?
这就是为什么我使用分层对象而不是ID:
我正在开发一个插件系统,我试图让消耗程序员在学习时间、写作时间和代码长度方面尽可能简单。
插件系统将允许CRUD访问EF对象。在服务器上,当我想成为时,我会让他们实现一个接口
public interface IMyInterface<TEntity>
{
IEnumerable<TEntity> Get();
void Put(TEntity t);
void Post(TEntity t);
void Delete(TEntity t);
}
我现在正在客户端上处理Delete
,由于某种原因,在[FromUri]
这样的具体实现中,如果没有C#属性,就无法映射复杂的对象。据我所知,属性不是从接口继承的,因此,如果我的客户端(AngularJS)执行类似$http.delete('api/uri', { params: { objectToDelete } });
的操作,则需要一个属性来使用params进行删除。我还尝试过使用配置对象的data
属性,但也没有成功。我知道用ID作为Delete
方法的参数是传统的/标准的,但如果这里存在这样的东西,那么客户端需要知道什么构成了"密钥"——这更需要消耗程序员来编写。
MyClass
是一个复杂类型,通过ASP.NET Web API从请求主体绑定。HTTP语义不允许为DELETE提供请求体,因此,您将无法使用Angular发布带有DELETE的请求体。确切地说,这不是Angular的问题,但大多数浏览器不会发送带有AJAX DELETE请求的正文。
- 解析一个复杂的JavaScript表达式,将其改写为另一种格式
- 在javascript中拼接一个复杂的多维数组
- 从一个复杂的JSON对象打印每个JSON输入路径
- 解析并构造一个复杂的json
- 如何让WebAPI在不使用C#属性的情况下接受一个复杂对象作为DELETE HTTP谓词的参数
- Emberjs:使用父级和子级的数据创建一个复杂的操作
- 有两个函数更好的做法,还是有一个复杂的函数
- WebGL/Three.js一个复杂对象(网格)上的不同材质
- 测试一个复杂的AngularJS模块(自动展开菜单)
- 将一个复杂的模型绑定到MVC中的下拉列表
- 在 jsp 页中设计一个复杂的结构,并使用操作类在其上传达值
- 主干创建一个复杂的标签名视图
- 创建一个复杂的html5表单.获取动态表单数据.Id vs Name
- Angular正在构建一个复杂的领域模型
- 如何用引号和双引号将JavaScript变量连接成一个复杂的字符串
- 在chrome.storage中存储一个复杂对象
- 是否有任何IDE/框架/等开发一个复杂的web (RIA一样)不使用Flex/Flash Builder
- 用javascript排序一个复杂的无序列表
- 如何在Javascript中排序一个复杂的列表
- 测试和开发一个复杂的小部件意味着在客户网站上运行的工作流程