Bry*_*yuk 2 javascript asp.net api asp.net-mvc asp.net-mvc-5
我试图遵循默认的Web API教程:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
这是我做的:
1)我在我的添加动作路由WebApiConfig:
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
2)我在导航栏上添加了一个带有客户端javascript调用的链接:
<a onclick="RetrieveNext();" href="#">Retrieve next</a>
Run Code Online (Sandbox Code Playgroud)
3)这是我的看法:
<div class="row">
<div class="col-md-4">
<h2>Next barcode</h2>
<p id="barcode">
No available barcode
</p>
</div>
</div>
<script>
var uri = 'api/Barcode';
$(document).ready(function () {
});
function RetrieveNext() {
uri = 'api/Barcode/RetrieveNext';
$.getJSON(uri)
.done(function (data) {
$('#barcode').text(data);
})
.fail(function (jqXHR, textStatus, err) {
$('#barcode').text('Error: ' + err);
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
4)这是我的简单ApiController与1动作:
public class BarcodeController : ApiController
{
[HttpGet]
public IHttpActionResult RetrieveNext()
{
string barcode = "123456";
if (barcode == null)
{
return NotFound();
}
return Ok(barcode);
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击我的链接时,我得到了:Error: Not Found在我的内部<p id="barcode">,这意味着JavaScript工作,但没有调用Action.
这是电话详情:

我错过了什么?我在我的Action中添加了断点,但是我无法访问此代码...
这有多愚蠢??? 我发现这里有什么问题:将Web API添加到现有的MVC Web应用程序后出现404错误
它与global.asax文件有关.即使您将WEB API添加到项目中,Visual Studio也会为您打开readme.txt文件,其中提供了一些如何向global.asax文件添加几行代码的提示.关于你应该放置代码的地方没有一句话(这里确实有所不同!)
因此,从我列出的帖子中复制ablove:虽然它不适用于:
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);
}
Run Code Online (Sandbox Code Playgroud)
它适用于:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |