2013-07-29 2 views
3

John Papa 단일 페이지 응용 프로그램 소스 코드를 사용하여 자체 응용 프로그램을 만들고 Breeze 웹 API를 사용할 때 몇 가지 문제가 있습니다. 내 자신의 바람 컨트롤러가 있고 두 번째 HttpGET 메서드를 추가하자마자 "요청과 일치하는 여러 작업이 발견되었습니다"라는 오류 메시지가 나타납니다.Breeze WebAPI - 요청과 일치하는 여러 작업이 발견되었습니다.

그의 코드에서 그는 여러 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을 사용하여 데이터 : 나는 라우팅이 .CS 파일을 발견하지만 난에있는 경우 나도 몰라

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

그것을 변경하십시오.

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}" 
    ); 
    } 
    } 
} 

사람은 문제가 무엇인지 알고 있나요?

답변

2

내가 사용해야하는 URL이 breeze/breeze/MethodName이라는 약간 어리 석다.

존의 코드는 따라서 혼란

+0

그리고이 없습니다. 경로 설정 방법은 모두 – Ward

+1

Nuget 패키지에서 BreezeWebApiConfig 파일을 설정하는 방법이 문제라고 생각합니다. Pluralsight 비디오에서 John은 nick이 사용하고있는 URL (API 포함)을 사용합니다. 여기가 자동으로 생성하는 코드입니다 : '공공 정적 무효 RegisterBreezePreStart() { GlobalConfiguration.Configuration.Routes.MapHttpRoute ( 이름 : "BreezeApi" routeTemplate : "바람/{컨트롤러}/{동작} " ); –

1

파파의 코스는 장절로 프로젝트 소스 코드로 single-page-apps-jumpstart.zip 파일이 URL에 두 번 바람을 사용하지 않습니다. 오른쪽 버전 BreezeWebApiConfig.cs 내용과 같은 것입니다 :

public static class BreezeWebApiConfig { 

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

공지 문자열 routeTemplate : "API/{컨트롤러}/{동작}는"당신은 하나에

관련 문제