Javascript 无法在MVC 5应用程序的api Web api 2控制器中访问操作
我已尝试遵循默认的Web API教程: 以下是我所做的: 1) 我在我的Javascript 无法在MVC 5应用程序的api Web api 2控制器中访问操作,javascript,asp.net,asp.net-mvc,api,asp.net-mvc-5,Javascript,Asp.net,Asp.net Mvc,Api,Asp.net Mvc 5,我已尝试遵循默认的Web API教程: 以下是我所做的: 1) 我在我的WebApiConfig中添加了操作路由: config.Routes.MapHttpRoute( name: "ActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); 2) 我在导航栏上添加了一个带有客户端javascript调用的链接:
WebApiConfig
中添加了操作路由:
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
2) 我在导航栏上添加了一个带有客户端javascript调用的链接:
<a onclick="RetrieveNext();" href="#">Retrieve next</a>
当我点击我的链接时,我得到:错误:在我的
中找不到,这意味着JavaScript可以工作,但没有调用操作
以下是通话详情:
我错过了什么?我在操作中设置了断点,但我无法访问此代码…这有多愚蠢???我发现了问题所在:
它与global.asax文件相关。即使将WEB API添加到项目中,visual studio也会为您打开readme.txt文件,并提供一些如何向global.asax文件中添加几行代码的提示。关于代码应该放在哪里,没有一个词是明确的(在这里,它真的很重要!)
因此,从我列出的博文中复制:
虽然它不适用于:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register); //I AM THE 4th
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
它与:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register); //I AM THE 2nd
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
尝试在url中为id
添加一个值——在该场景中是否会调用您的操作?您是否尝试过uri='api/Barcode'
它可能会忽略RetrieveNext
,并根据其签名自动获取默认的HttpGet
,并提供您想要的内容。我尝试添加id,但没有帮助。已尝试的uri='api/Barcode';但它不起作用。此控制器将包含多个[HttpGet]操作,因此我需要能够达到所需的确切操作。对控制器进行骆驼式封装如何,例如uri='api/barcode'
,并尝试您的操作名称。在教程的一半,它显示了映射到URI的控制器方法,它们是驼峰式的,我已经尝试过了。。。不起作用
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register); //I AM THE 4th
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register); //I AM THE 2nd
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}