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に従いました。 「ValuesController」を除いて、すべてが nuGet から自動的に作成されます。

問題はそこにあると思います。

私の値コントローラー:

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 (最初から値コントローラーを含む) を作成しましたが、これは正常に動作します..)

4

1 に答える 1

2

解決策を見つけました!

ステップ 1: 空の web api2 コントローラーとして、Controller-folder に valuesController を追加しました。次に、チュートリアルのコードを貼り付けました。

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 に答える