3

John Papa シングル ページ アプリケーションのソース コードを使用して独自のアプリを作成していますが、Breeze Web API の使用時に問題が発生しています。独自の簡単なコントローラーがあり、2 つ目の HttpGET メソッドを追加するとすぐに、「要求に一致する複数のアクションが見つかりました」というエラーが表示されます。

彼のコードに複数のGETを追加し、彼のコードが機能するので奇妙ですが、何かが足りないと思います。

ブリーズコントローラー

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Breeze.WebApi;
using AgencyUpdate.Models;

namespace AgencyUpdate.Controllers
{
    [BreezeController]
    public class BreezeController : ApiController
    {

        readonly EFContextProvider<AgencyDbContext> _ContextProvider =
            new EFContextProvider<AgencyDbContext>();

        public string MetaData()
        {
            return _ContextProvider.Metadata();
        }

        [HttpGet]
        public IQueryable<api_Agency> GetAgency()
        {
            return _ContextProvider.Context.api_Agency;
        }


        [HttpGet]
        public IQueryable<api_AgencyOffice> GetOffice()
        {
            return _ContextProvider.Context.api_AgencyOffice;
        }

    }
}

この URL を使用してデータをリクエストします。

**http://localhost:13762/api/breeze/GetAgency**

また、この .CS ファイルをルーティング用に見つけましたが、変更する必要があるかどうかわかりません。

BreezeWebApiConfig

using System.Web.Http;

[assembly: WebActivator.PreApplicationStartMethod(
    typeof(AgencyUpdate.App_Start.BreezeWebApiConfig), "RegisterBreezePreStart")]
namespace AgencyUpdate.App_Start {
  ///<summary>
  /// Inserts the Breeze Web API controller route at the front of all Web API routes
  ///</summary>
  ///<remarks>
  /// This class is discovered and run during startup; see
  /// http://blogs.msdn.com/b/davidebb/archive/2010/10/11/light-up-your-nupacks-with-startup-code-and-webactivator.aspx
  ///</remarks>
  public static class BreezeWebApiConfig {

    public static void RegisterBreezePreStart() {
      GlobalConfiguration.Configuration.Routes.MapHttpRoute(
          name: "BreezeApi",
          routeTemplate: "breeze/{controller}/{action}"
      );
    }
  }
}

誰が問題が何であるか知っていますか?

4

2 に答える 2

1

パパのコースには、章ごとのプロジェクト ソース コードを含む single-page-apps-jumpstart.zip ファイルがあります。BreezeWebApiConfig.cs コンテンツの正しいバージョンは次のとおりです。

public static class BreezeWebApiConfig {

    public static void RegisterBreezePreStart() {
      GlobalConfiguration.Configuration.Routes.MapHttpRoute(
          name: "BreezeApi",
          routeTemplate: "api/{controller}/{action}"
      );
    }
  }
}

文字列routeTemplate: "api/{controller}/{action}"に注意してください

于 2014-04-24T16:38:56.910 に答える