我正在使用John Papa单页面应用程序源代码来创建自己的应用程序,并且在使用Breeze Web API时遇到了一些问题。我有自己的breeze控制器,只要我添加第二个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}"
);
}
}
}
有谁知道问题是什么?
答案 0 :(得分:2)
我觉得我需要使用的URL有点愚蠢是breeze / breeze / MethodName。
John的代码在URL中没有使用breeze两次,因此存在混淆
答案 1 :(得分:1)
Papa的课程包含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}”