c# - .NET Core MVC Web API Controller 不返回数据,尽管与返回数据的 Controller 相同

标签 c# asp.net-mvc asp.net-core

我正在尝试使用 .NET Core 构建 web api

我已经创建了一些示例数据并在默认创建的 ValuesController 中的默认 Get() 函数中返回它

namespace CoreWebAppMultiFunction.Controllers
{
    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
         // GET api/values
        [HttpGet]
        public List<Info> Get()
        {
            List<Info> info = new List<Info>();
            info.Add(new Info { ID = 0, Data = "this is on the test", Read = true });
            info.Add(new Info { ID = 2, Data = "this is also on the test", Read = false });
            return info;
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }
    }
}

但是当我创建一个新 Controller 时,新 Controller 不返回任何东西,只是一个空白的浏览器窗口。浏览器控制台显示 404:无法使用我尝试使用的每个 URL 加载资源。

namespace CoreWebAppMultiFunction.Controllers
{
    [Route("MoreInfo/[controller]")]
    public class MoreInfoController : Controller
    {
        [HttpGet]
        public SomeMoreInfo SomeInfo()
        {
            return new SomeMoreInfo { ID = 0, data = "data", yesno = true };
        }
    }
}

有没有可能是我试图在浏览器 URL 中错误地访问它?还是我设置 Controller 的方式有问题?

提前致谢

最佳答案

事实证明,在类上方添加 route 会隐藏除 HttpGet 函数之外的所有函数。如果有多个,它们将被视为过载,或者服务根本不返回任何内容。

跟随自动创建的示例类似乎是一个糟糕的举动,让我感到困惑。

关于c# - .NET Core MVC Web API Controller 不返回数据,尽管与返回数据的 Controller 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44388049/

相关文章:

asp.net-core - 是否对在整个 ASP.NET Core 3 应用程序中使用完全相同的 HTTPContextAccessor 实例感到困惑?

c# - 如何逐渐旋转一个物体以面对另一个转动最短距离

c# - 如何将现代 UI 菜单文本更改为大写

asp.net-mvc - DisplayFor和ValueFor之间的区别

c# - 如何获取要在 MVC 2 中显示的位图图像

asp.net-mvc - 从命令行在 IISExpress 中运行 ASP.NET

C# 泛型 - 返回派生类的对象?

c# - 带验证的对象初始化

jquery - 我网站中的侧边栏菜单问题

azure - DotNet Core Web 应用程序在本地工作,但在部署到 Azure 时无法工作