我尝试从aspx上的ajax jquery函数调用一个codebehind函数,但我重新编写了messagge 500(内部服务器错误。) 如果我检查IE上的Web开发人员工具,我发现了消息 No se puede encontrar el tipo'Acme.SubAcme.ConvertMeTypeConverter'
这是我在visorMapa.aspx上的Js函数
null
这是代码隐藏的功能
function getMarkersMap(indicador) {
getFiltros()
console.log("indicador: " + indicador + ", flota: " + flota + ", t.Unidad: " + tUni + ",marca: " + marca)
$.ajax({
type: 'POST',
url: 'visorMapa.aspx/getMarkers',
data: "{}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
console.log("good Job");
},
error: function(data) {
console.log("something is wrong!");
}
});
}
我在web.config上读到了关于jsonSerialization的一些不公开的行,并且我的web.config中的行是取消注释的。 我想知道是否可以从ajax调用代码隐藏的web方法。 我想创建一个Web服务,或者Partial类,我从来没有做过部分类,但我想知道是否是一个选项。 我愿意接受另一种选择。 我需要的是从vb.net的db获取json对象并处理javascript 我用的是vb.net 2008 今天做新的测试人员。 我在一个新的vb.net解决方案上做了一个WS示例,并从Js调用默认的WS函数(hello world)并且工作正常。然后我在我的vb解决方案上做同样的事情并且不起作用。问题不是Js函数或WS。还要在浏览器上测试WS并运行。我认为可能是web.config或其他东西。我可以做什么其他测试?
答案 0 :(得分:0)
转到“App_Start”文件夹下的“RouteConfig.vb”。
更改以下行
settings.AutoRedirectMode = RedirectMode.Permanent
要
settings.AutoRedirectMode = RedirectMode.Off
请参阅:RFC 19
答案 1 :(得分:0)
我想分享一个我找到的可选解决方案。我认为问题是IIS中的应用程序组。我为此特定项目使用 Classic .Net AppPool版本Net CLR:2.0 。 我发现它的解决方案是不使用WS并使用AJAX库 1.-在加载时添加AJAX对象事件vb.net(visorMapa_VisorMapa是由vb.net定义的部分类的名称)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Ajax.Utility.RegisterTypeForAjax(GetType(visorMapa_VisorMapa))
'more code on load page event...
End Sub
2.-在我的vb.net函数上添加此行
<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)> _
Public Function getMarkerMap(ByVal accion As Integer, Optional ByVal flota As Integer = -1) As String
'some code here and return JSON....
result = JsonConvert.SerializeObject(dt)
Return result
End Function
3.-并从像这样的Js中调用它
//JS Function
function getMarkersMap(indicador) {
getFiltros();
visorMapa_VisorMapa.getMarkerMap(indicador, flota, getMarkers_CallBack);
}
//the callback
function getMarkers_CallBack(data) {
clearMarkers();
markers = JSON.parse(data.value);
//console.log(markers[0].poslat);
for (var i = 0; i < markers.length; i++) {
var mylatLng = new google.maps.LatLng(markers[i].poslat, markers[i].poslon);
console.log(markers[i].poslat + ", " + markers[i].poslon);
}
通过这种方式,我可以从JavaScript调用codebehind函数并获取JSON对象,我可以在Js上处理它。
我感谢您的帮助。也许这不是最好的解决方案,但在这种情况下,它可以工作。