获取方法不在Web API中显示数据

时间:2014-09-15 05:48:12

标签: asp.net asp.net-mvc rest asp.net-web-api

我正在学习webapi。我正在运行我的webapi项目并点击网址 localhost:54099 / api / values

但是Get没有被执行。我无法看到数据。我在哪里做错了?当我点击网址时,弹出窗口显示但是我无法保存或打开它。 当我在Chrome中点击相同的网址时,我收到了错误

尝试创建类型为' ValuesController'的控制器时发生错误。确保控制器具有无参数的公共构造函数。

enter image description here

ValuesController中的WebAPI方法

  public IEnumerable<Book> Get()
            {
                var Books = iLibrary.GetBooks();
                return Books.ToList();
            }

WebApiConfig

 public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }

2 个答案:

答案 0 :(得分:1)

您的端点正确执行,似乎返回数据。您所看到的是Internet Explorer的默认行为,用于显示您返回的数据(我假设为JSON或XML),即将其作为文件下载。

使用Chrome / Firefox。根据您是否返回JSON或XML,您可能还希望使用在浏览器s.t中格式化响应的插件。它更具可读性。例如

答案 1 :(得分:0)

我找到了解决方案。我使用了错误的dll来解决依赖注入。我使用的是Unity.MVC4,但由于它是一个webapi项目,我必须使用Unity.WebAPI。