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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31463866/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 19:17:28  来源:igfitidea点击:

How do I call a server side VB.net function from jquery in an asp.net form?

javascriptjqueryasp.netvb.netwebmethod

提问by Jake Hunter

I am trying to call a method in my server-side vb code from jquery.

我正在尝试从 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

In my javascript code the alert is being called but the SubmitReport_Click is not being called.

在我的 javascript 代码中,正在调用警报但未调用 SubmitReport_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>

采纳答案by jessikwa

I'd make a function that fires on the click event and calls over to your web method using AJAX, and use JSON to pass any relevant data.

我会创建一个函数来触发点击事件并使用 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

回答by CrazyPaste

You can use an Ajaxrequest. I just typed this up, so you may need to Google the syntax in case I messed it up.

您可以使用Ajax请求。我刚刚输入了这个,所以你可能需要谷歌一下语法,以防我把它搞砸了。

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