Javascript 如何以asp.net形式从jquery调用服务器端VB.net函数?

Javascript 如何以asp.net形式从jquery调用服务器端VB.net函数?,javascript,jquery,asp.net,vb.net,webmethod,Javascript,Jquery,Asp.net,Vb.net,Webmethod,我试图从jquery调用服务器端vb代码中的一个方法 import System.Web.Services ... 'my VB.net Code <WebMethod()> _ Public Shared Function SubmitReport_Click() 'this is where my code will go Return Nothing End Function import Sys

我试图从jquery调用服务器端vb代码中的一个方法

    import System.Web.Services
    ...
    'my VB.net Code
    <WebMethod()> _
    Public Shared Function SubmitReport_Click()
        'this is where my code will go
        Return Nothing
    End Function
import System.Web.Services
...
'我的VB.net代码
_
公共共享函数SubmitReport_Click()
“这就是我的代码将要用到的地方
一无所获
端函数
在我的javascript代码中,正在调用警报,但未调用SubmitReport\u Click

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

<script type="text/javascript">
    $("#<%= FileInput.ClientID%>").on('filebatchselected', function (event) {
        alert("file input");
        pagemethods.SubmitReport_Click();
    })
</script>

$(“#”)on('filebatchselected',函数(事件){
警报(“文件输入”);
pagemethods.SubmitReport_Click();
})

您可以使用
Ajax
请求。我刚刚打了这个,所以你可能需要谷歌的语法,以防我搞砸了

$.ajax({
    type: "GET",
    url: "FileName.aspx/SubmitReport_Click",
    success: function(){
        alert('It Worked!');
    },
    failure: function() {
        alert('It Failed!');
    }
});

我将创建一个函数,在单击事件中触发,并使用AJAX调用您的web方法,并使用JSON传递任何相关数据

$(".clickMe").click(doWebMethod);

function doWebMethod () {    
    var data = { 'name': 'jessikwa' , 'location': 'ny' }
    var params = "{'dataPackage': '" + JSON.stringify(data) + "'}";
    $.ajax({
        type: "POST",
        url: webMethodUrl,
        async: true,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert(msg.d);
        },
        error: function () {
            alert("fail");
        }
    });
}

//VB HERE

<WebMethod()> _
Public Shared Function SubmitReport_Click(ByVal dataPackage as String) as String
    Dim rtnStr As String = "OK"
    //deserialize data package here
    Return rtnStr
End Function
$(“.clickMe”)。单击(doWebMethod);
函数doWebMethod(){
变量数据={'name':'jessikwa','location':'ny'}
var params=“{'dataPackage':'”+JSON.stringify(data)+“}”;
$.ajax({
类型:“POST”,
url:webMethodUrl,
async:true,
数据:params,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
警报(msg.d);
},
错误:函数(){
警报(“失败”);
}
});
}
//这里是VB
_
公共共享函数SubmitReport_单击(ByVal数据包作为字符串)作为字符串
尺寸rtnStr为字符串=“确定”
//在这里反序列化数据包
返回rtnStr
端函数

我很确定这是不可能的,但可能有比我更聪明的人会插话。我没有收到任何错误,并且在这一特定事件中调用了警报(“文件输入”),我不知道这是否会有帮助
我使用的这个,但是对于
公共共享子…
和每次都有效。顺便说一句,这重要吗
PageMethods…
?上/下箱体,顺便说一句。你在那个函数下的代码是什么?目前我只是分配一个带断点的变量,以确保它被调用,以澄清传递的数据