2017-08-28 82 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作为它自己的东西,并通过前端对它进行调用。