2016-01-29 92 views
1

我在Jaydata版本1.3.6(使用OData V3)上工作,並且我有服務操作和操作的問題,他們都提交wia GET方法而不是POST ...Jaydata ServiceOperation和Action方法POST被忽略

由於我的$過濾器請求對GET請求(限制字符串長度)很大,所以我必須將GET更改爲POST。

我試着像很多可能性:

$data.EntityContext.extend('Default.Container', { 
    'Items': { type: $data.EntitySet, elementType: Entities.Item, method: 'POST' }, 
    'GetItemsAction': { type: $data.ServiceAction, returnType: $data.Queryable, elementType: 'Entities.Item', 'EntitySet': 'Item', params: [] }, 
    'GetItemsOperation': { type: $data.ServiceOperation, returnType: $data.Queryable, elementType: 'Entities.Item', 'EntitySet': 'Item', params: [], method: 'POST' } 
}); 

維護操作是爲了有方法的動作在默認情況下的職位,但它總是在GET,即使我手動設置方法爲ServiceOperation該方法的參數被忽略......

我在POST設置一個.net的OData控制器與我的方法:

[EnableQuery] 
public IQueryable<Item> Get(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

[HttpPost] 
[EnableQuery] 
public IQueryable<Item> GetItemsAction(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

[HttpPost] 
[EnableQuery] 
public IQueryable<Item> GetItemsOperation(ODataQueryOptions<Item> options) 
{ 
    return this._itemRepository.GetAll(); 
} 

是否存在與implementati問題Jaydata的?

感謝您的建議!

回答

0

我找到了一個解決方案,具有服務行動和服務運營由POST方法傳遞:

,當我看到這一點:http://jaydata.org/blog/odata-cookbook-with-jaydata#h3_2

我看到動力方面創造忽略POST方法時,它解析電火花$元數據中的第一次...

要做的第一件事就是靜態初始化這樣的語境下

var context = new NortwindContext({ 
    name: 'oData', 
    oDataServiceHost: 'http://localhost:50538/examples/Northwind.svc' 
}); 

context.onReady(function() { 
    // work with your data 
}); 

但Jaydata不會POST $過濾器和其他$頂級查詢約定,這是GET查詢字符串中的全部。

如何解決GET的問題在OData v3 Jaydata的最大長度? 我還不確定...如果有人能幫助我...