ASP.NET Core Web API 500 内部服务器错误

4

我正在尝试在ASP.NET Core框架中构建API。我已经创建了一个基本的控制器,它只是返回一个字符串:

namespace Dojo_Api.Controllers.Forum
{
    //[Authorize]
    [Route("api/[controller")]
    public class ForumController : Controller
    {
        private MainContext _context;

        public ForumController(MainContext context)
        {
            _context = context;
        }

        [HttpGet]
        public string Get()
        {
            return "string";
        }
    }
}

现在当我尝试通过Postman访问API时,我收到了一个500 Internal Server Error错误:
enter image description here
我已经尝试更改端口,但没有效果。有人知道这个问题的解决方案吗?
提前感谢!

1
你调试并检查了控制器是否被触发了吗?如果正在执行,那么在执行过程中是否有任何异常? - Pratik Gaikwad
1
@Peurr,你的ForumController构造函数包含一个参数。你是否注入了依赖项? - PaulShovan
添加一个无参数的构造函数:public ForumController(){} - Marcus Höglund
控制器路由缺少一个闭合方括号,应该是在这里 [Route("api/[controller")] 打字时出现了错误。 - Nkosi
只是好奇,你在什么地方看到过 [Route("api/[controller]")] 被使用? - Mark C.
2个回答

4

控制器路由这里缺少一个闭方括号 [Route("api/[controller")],除非这是问题编写时的错别字。

正确应该是

[Route("api/[controller]")]
[Route("api/[controller]")]
public class ForumController : Controller { ... }

1
[RoutePrefix("api/forum")]
public class ForumController : Controller
{
    private MainContext _context;

    public ForumController()
    {
        _context = new MainContext();
    }

    [HttpGet]
    public string Get()
    {
        return "string";
    }
}

请尝试这个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接