它是从ajax jquery调用vb.net codebehind方法的?

时间:2015-05-18 00:51:22

标签: jquery asp.net ajax vb.net

我尝试从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或其他东西。我可以做什么其他测试?

2 个答案:

答案 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上处理它。
我感谢您的帮助。也许这不是最好的解决方案,但在这种情况下,它可以工作。