我在 .Net 4.5 中有一个 oData 应用程序。oData 端点工作正常,但我想在控制器上创建一个自定义操作,以便在给定电子邮件地址时在客户记录上设置标志。
这是我的客户端代码(使用 AngularJS):
$http({
method: 'POST',
url: '/odata/Customers/SetAlertFlag',
data: { 'email': 'test@test.com'}
}).success(function (data, status, headers, config) {
// ...
}).error(function (data, status, headers, config) {
// ...
});
这是我的服务器代码:
public class CustomersController : EntitySetController<Customer, int>
{
private DBEntities db = new DBEntities();
// ... other generated methods here
// my custom method
[HttpPut]
public Boolean SetAlertFlag([FromBody] string email)
{
return true;
}
}
服务器方法永远不会被调用。当我在浏览器中键入此 URL 时,http://localhost:60903/odata/Customers/SetAlertFlag
我收到此错误:“检测到无效操作。'SetAlertFlag' 不是可以绑定到 'Collection([Skirts.Models.Customer Nullable=False])' 的操作。”
EntitySetController 类可以没有自定义方法吗?我还应该怎么做?