2017-08-28 71 views
0

我有一個WebAPI項目,作爲前端React + Redux項目的依賴項。WebAPI不會初始化?

我創建了一個代碼第一個數據庫與控制器暴露一些HttpGet函數的功能修改DbContext數據庫。

當應用程序運行Startup.ConfigureServices不叫和的WebAPI調用從陣營讓我這個錯誤:從不同的控制器不使用的DbContext東西雖然工作

"SyntaxError: Unexpected token < in JSON at position 0"

的WebAPI功能..

在LinkController我有以下幾點:

[Route("api/[controller]")] 
public class LinkController : Controller 
{ 
    [HttpGet("[action]")] 
    public URLSubmitResult SubmitLink(string url) 
    { 
     return new URLSubmitResult() { Success = true }; 
    } 

    public class URLSubmitResult 
    { 
     public bool Success { get; set; } 
    } 
} 

    private readonly LinkDbContext _context; 

    public LinkController(LinkDbContext context) 
    { 
    _context = context; 
    } 

在ValuesController如下:

[Route("api/[controller]")] 
    public class ValuesController : Controller 
    { 
    [HttpGet("[action]")] 
    public URLSubmitResult SubmitLink(string url) 
    { 
     return new URLSubmitResult() { Success = true }; 
    } 

    public class URLSubmitResult 
    { 
     public bool Success { get; set; } 
    } 

    public ValuesController() 
    { 

    } 

,電話不發生,如果我去API /連接/ submitlink?URL = lol.com但確實,如果它的API /價值/ submitlink?URL = lol.com

的實際問題,無論我在響應中收到的錯誤是,api/link/submit鏈接沒有導致調用控制器功能。 最有可能的情況是未定義的結果回來了,這不是對json的類型轉換。

+0

這個錯誤在哪裏發生?很可能這是你試圖傳遞給api函數的數據的一些問題。 – TheVillageIdiot

+3

也許你發送它的格式爲Xml和Web Api試圖反序列化爲Json –

+0

不是,因爲我說過一個類似的調用(帶有字符串參數)給另一個不依賴於dbcontext的控制器工作正常,初始化函數沒有被調用dbcontext依賴控制器。 – tweetypi

回答

0

所以基本上問題是被引用的WebAPI程序集沒有向依賴注入添加適當的服務。

在Startup.ConfigureServices爲主營項目,我補充說:

services.AddDbContext<LinkDbContext>(options => 
        options.UseSqlServer(Configuration.GetConnectionString("LinkDBConnectionString"))); 

隨着連接字符串(LinkDBConnectionString)的依賴注入工作,初始化的WebAPI。

從一些更多的經驗,我發現這個項目設置不是真正的我想要的是從WebAPI分離前端,包括WebAPI作爲依賴到前端不是在web的情況下的答案。

現在,我現在在Visual Studio中運行WebAPI作爲它自己的東西,並通過前端對它進行調用。