Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在MVC 5应用程序的api Web api 2控制器中访问操作_Javascript_Asp.net_Asp.net Mvc_Api_Asp.net Mvc 5 - Fatal编程技术网

Javascript 无法在MVC 5应用程序的api Web api 2控制器中访问操作

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调用的链接:

我已尝试遵循默认的Web API教程:

以下是我所做的:

1) 我在我的
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);
}