Asp.net 使用Web API托管jQuery移动应用程序
我已经为jQuery移动应用程序编写了一个非常基本的教程,其中包含一个使用VS2013和VB.NET的Web Api的非常基本的教程。Web Api仅用于我的应用程序中的UI,作为html和asp.net之间的桥梁。它在我的开发机器上运行得很好,但当我将其移动到宿主服务(WinHost)时,WebAPI部分失败。我假设有一个web.config条目可以解决这个问题——但是,我完全不明白这一点。html/jQuery代码是:Asp.net 使用Web API托管jQuery移动应用程序,asp.net,vb.net,jquery-mobile,Asp.net,Vb.net,Jquery Mobile,我已经为jQuery移动应用程序编写了一个非常基本的教程,其中包含一个使用VS2013和VB.NET的Web Api的非常基本的教程。Web Api仅用于我的应用程序中的UI,作为html和asp.net之间的桥梁。它在我的开发机器上运行得很好,但当我将其移动到宿主服务(WinHost)时,WebAPI部分失败。我假设有一个web.config条目可以解决这个问题——但是,我完全不明白这一点。html/jQuery代码是: <!DOCTYPE html> <html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="css/custom.css" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.2/jquery.mobile.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<title>Boilerplate</title>
<script>
var uri = 'api/class1s';
function formatItem(item) {
return item.field1;
}
function find() {
var id = $('#prodId').val();
$.getJSON(uri + '/' + id)
.done(function (data) {
$('#product').text(formatItem(data));
})
.fail(function (jqXHR, textStatus, err) {
$('#product').text('Error: ' + err);
});
}
</script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Boilerplate</h1>
</div>
<div data-role="content">
<p>Page Body content</p>
<div>
<input type="text" id="prodId" size="5" />
<input type="button" value="Search" onclick="find();" />
<p id="product" />
</div>
</div>
<div data-role="footer">
<h4>Footer content</h4>
</div>
<a href="{dynamic location}" class="fullSiteLink">View Full Site</a>
</div>
</body>
</html>
还有一个用于定义数据的类和一个用于填充数据并通过Web Api返回数据的控制器。
这些操作不应影响此问题(并且在我的台式电脑上工作正常)。
否则,这只是一个标准的VS2013 ASP.Net 4.5.1项目,使用选中Web Api选项的空网站
有没有办法让这个程序在主机服务上运行?你看到什么错误了吗?嗨,道格拉斯,谢谢你的提问,但现在已经修复了。这是我的主机服务的设置问题,我只是忘记了。即使该站点以HTML页面开始,VB部分仍然要求在托管服务上将该站点配置为ASP站点。很高兴听到这个消息。:)
<configuration>
<appSettings></appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
</system.web>
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
</configuration>
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web.Http
Public Module WebApiConfig
Public Sub Register(ByVal config As HttpConfiguration)
' Web API configuration and services
' Web API routes
config.MapHttpAttributeRoutes()
config.Routes.MapHttpRoute(
name:="DefaultApi",
routeTemplate:="api/{controller}/{id}",
defaults:=New With {.id = RouteParameter.Optional}
)
End Sub
End Module