簡體   English   中英

OData WebApi:自定義操作不起作用

[英]OData WebApi: Custom action not working

我正在使用通過OData(使用ODataController)啟用的ASP.Net WebApi。

我需要完成一項工作,我需要添加一個自定義操作,但該工作不起作用,看來我錯過了一些東西,有人可以讓我知道我在哪里做錯了嗎?

提前致謝!!

以下是我的實現的代碼段。

自定義動作

[HttpGet]
[Queryable]
public IQueryable<User> PersonalInfo()
{
    int UserID = this.UserTicket.User_ID;
    return _users.Queryable().Where(d => d.UserID == UserID);
}

在ODataConfig中添加操作

builder.EntitySet<User>(typeof(User).Name);
ActionConfiguration personalInfo = builder.Entity<User>().Collection.Action("PersonalInfo");

生成的元數據

<FunctionImport Name="PersonalInfo" IsBindable="true" m:IsAlwaysBindable="true">
    <Parameter Name="bindingParameter" Type="Collection(Models.User)" Nullable="false"/>
</FunctionImport>

編輯1

我錯過了提及,以下是我從預期的URL收到的錯誤:

找不到與請求URI'http:// domain / odata / User / PersonalInfo '匹配的HTTP資源。

OData操作始終使用http謂詞POST,通常用於對服務器HttpGet方法,但是您的控制器方法具有HttpGet屬性,並且您似乎正在嘗試使用GET調用它。 查看該方法的實際作用(只是檢索一些數據),我認為您想擁有OData函數而不是Action。 為此,只需將您的Action調用更改為Function調用,如下所示:

FunctionConfiguration personalInfo = builder.Entity<User>().Collection.Function("PersonalInfo");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM