2015-06-02 78 views
0

我有一個使用ADO.NET Framework的OData web api,其中控制器操作在某種程度上沒有被達到。在ASP.NET Web API中沒有達到控制器操作

API正確接收HTTP請求並解析它以執行正確的操作,但未達到該操作。

作爲回報,chrome瀏覽器顯示認證窗口。

我一直在調試這麼久,但無法弄清楚如何解決這個問題。

該控制器(剝離版本):

public class DataController : ODataController 
{ 
    private readonly DataModel DataAccessModel = new DataModel(); 


    public DataController() 
    { 
     ....... 
    } 

    [HttpGet, EnableQuery] 
    public IQueryable<Record> GetRecord(ODataQueryOptions<Record> options) 
    { 

     try 
     { 
      IQueryable<ActivationRequestLog> result; 
      try 
      { 

       result = DataAccessModel.Recordss; 
      } 
      catch (Exception ex) 
      { 
       ...... 
      } 
     } 

    } 
} 
+0

你有Windows驗證安裝在Startup.Auth類項目? – Aram

+0

嘗試在方法的頂部添加[AllowAnonymous]? –

+0

'[HttpGet]'屬性是否自動將任何函數映射到OData GET函數?如果不是,請嘗試使用'public IQueryable Get(ODataQueryOptions options)'而不是'public IQueryable GetRecord(ODataQueryOptions options)'。如果你提供'WebApiConfig',它也會很好。 –

回答

0

你能呈現怎樣的控制器已經在WebApiConfig類被註冊?

如果您使用的是ODataConventionModelBuilder,那麼您必須遵循某些命名約定來控制實體集的控制器。

例如如果我註冊類型航空公司的航空實體集

 builder.EntitySet<Airline>("Airlines"); 

....然後默認/約定我需要實現

public class AirlinesController : ODataController<Airline> 
    { 
     [EnableQuery] 
     public IQueryable<Airline> Get() 
     { 
      DB db = Request.GetContext(); 
      return db.Airlines(); 
     } 
    } 
相關問題