4

当我运行我的程序时,它只显示“在此处提供您的 API 的一般描述”。但没有显示内容。就像这张图片:http: //i.stack.imgur.com/unBmb.png

我的问题类似于这个ASP.NET Web Api 帮助页面没有显示任何提示,但它没有提供任何解决方案。

我已按照“将帮助页面添加到现有项目”中的本教程http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages一切都是从 nuGet 自动创建的,除了“ValuesController”。

我猜这就是问题所在。

我的价值观控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApiHelperTest.Controllers
{
    public class ValuesController : ApiController
    {
        /// <summary>
        /// Gets some very important data from the server.
        /// </summary>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        /// <summary>
        /// Looks up some data by ID.
        /// </summary>
        /// <param name="id">The ID of the data.</param>
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post([FromBody]string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }
}

有没有人对此有解决方案,或者对可能出错的地方有任何建议?

(我还创建了一个新的 asp.net web api-project (其中包含从一开始的 valuescontroller),这工作正常..)

4

1 回答 1

2

我找到了解决办法!

第 1 步:我在 Controller 文件夹中添加了一个 valuesController,作为一个空的 web api2 控制器。然后粘贴教程中的代码:

using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace yournamespace.Controllers
{

public class ValuesController : ApiController
{
    /// <summary>
    /// Gets some very important data from the server.
    /// </summary>
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    /// <summary>
    /// Looks up some data by ID.
    /// </summary>
    /// <param name="id">The ID of the data.</param>
    public string Get(int id)
    {
        return "value";
    }
}
}

第 2 步:将此代码添加到 route.config 中(如果您从头开始制作 api 项目,则会自动创建该代码)因此,本教程中未提及。

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

当我运行该程序时,它起作用了。:)

于 2015-09-24T07:45:10.143 回答