jQuery ajax 函数调用 vb 文件中的代码

Posted

技术标签:

【中文标题】jQuery ajax 函数调用 vb 文件中的代码【英文标题】:Jquery ajax function to call code behind in vb file 【发布时间】:2018-08-14 08:23:57 【问题描述】:

首先,我要做的是填充这样的下拉框:

<asp:DropDownList CssClass="ui dropdown" ID="drpGolfClub" runat="server"></asp:DropDownList>

有些值给了我高尔夫俱乐部的 ID 和名称。问题是使用 jQuery 我似乎无法运行后面的 vb 文件中的代码。一切看起来都是这样。 在 aspx 文件中:

 function loadGolfClub()
        
                alert('inside method');
                //debugger;
                $.ajax(
                    type: "POST",
                    url: "Register.aspx/LoadGolfClub",
                    data: '',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: false,
                    success: function (Result) 

                        debugger;
                        Result = Result.d;
                        $('#<%=drpGolfClub.ClientID%>').empty();
                        $('#<%=drpGolfClub.ClientID%>').prepend("<option value='0'>" +"Select" + "</option>");
                        $.each(Result, function (key, value) 
                            $('#<%=drpGolfClub.ClientID%>').append($("<option></option>").val(value.GolfClubId).html(value.GolfClubName));
                            $('#<%=drpGolfClub.ClientID%>')[0].selectedIndex = 1;
                        );
                        alert("in sucess!");
                    ,

                    failure: function () 
                        alert("Failed!");
                    
                );
             

aspx文件后面的vb是这样添加的:

Imports System
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Owin
Imports System.Data
Imports System.Web.Services
Imports System.Reflection
Imports Golfbook.CoreLibrary
Imports Golfbook.CoreLibrary.Golfbook.Services


Public Class Register
    Inherits System.Web.UI.Page
    Shared objGCBO As New GolfClubBO()

    Shared objGolfClubService As New Golfbook.CoreLibrary.Golfbook.Services.GolfClub.GolfClubDetails

    Shared details As New List(Of GolfClubBO)()
    Shared _loginName As String
    Shared loginName As String

    Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

    End Sub

    <WebMethod()>
        <System.Web.Script.Services.ScriptMethod(ResponseFormat:=System.Web.Script.Services.ResponseFormat.Json)>
        Public Shared Function LoadGolfClub() As GolfClubBO()
            Dim details As New List(Of GolfClubBO)()
            Try
                details = objGolfClubService.LoadGolfClub()
            Catch ex As Exception

            End Try
            Return details.ToList.ToArray()
        End Function
End Class

我知道 vb 中的 page_load 已运行,但它从未转到那里的函数。我现在已经尝试了“一切”,但不知道该怎么做。函数中添加的警报框正在触发,因此它开始运行

我知道 JQuery 正在工作,因为我已将 som 值添加到随机文本框中:$('#txtFirstName').val('Martin');

关于这可能是什么原因的任何提示?

【问题讨论】:

1) loadGolfClub() 是否在您页面的某处执行? 2) 如果是这样,您是否检查过浏览器的网络工具以了解 ajax 请求是否执行以及响应是什么? 3) Catch ex As Exception End Try 是一个可怕的反模式——不要抑制意外的异常,因为你永远不会知道你的代码为什么会失败。让应用程序优雅地失败,并记录所有异常(在全局级别)以供将来调查 4)async: false 也是一个坏主意,没有必要,锁定浏览器 UI 并且无论如何都已弃用。你不需要也不想要它。 1) 是的,它已加载到 $(document).ready(function ()。2) 我真的不知道如何检查,但我至少在控制台中看不到任何错误消息.3)我将在那里添加一条错误消息,但它不应该与此有任何关系,因为该函数根本不会启动。4)我已经删除了 async:false,但这也没有帮助。 “我真的不知道如何检查,”...打开浏览器的开发工具并转到网络部分。然后刷新您的页面并观察是否发生了对 LoadGolfClub 的 ajax 调用。如果是,您可以单击它以打开更多详细信息,包括请求详细信息和响应数据。您要检查响应代码(“200 OK”表示它成功运行而没有崩溃),以及响应正文本身。 这是您以前见过的消息吗? 消息:“Godkjenning mislyktes。”,StackTrace:null,... ExceptionType:“System.InvalidOperationException”消息:“Godkjenning mislyktes。”堆栈跟踪:空 “Godkjenning mislyktes”是“身份验证失败”,对吧?挪威?无论如何,我想这意味着服务器认为您没有登录。在向您的站点发出请求时,您是否需要提供会话 cookie 或其他类型的身份验证令牌?还有返回的 HTTP 代码是什么? 401?顺便说一句,你可以用谷歌搜索那个错误,它会返回一些有趣的东西,包括***.com/questions/23033614/… 【参考方案1】:

如上所述,感谢 ADyson,我的问题的答案是解决这个问题: 里面 ~/App_Start/RouteConfig.cs 变化:

settings.AutoRedirectMode = RedirectMode.Permanent;
To:

settings.AutoRedirectMode = RedirectMode.Off;

谢谢大家的回复!

【讨论】:

以上是关于jQuery ajax 函数调用 vb 文件中的代码的主要内容,如果未能解决你的问题,请参考以下文章

jquery ajax响应+不同AppDomain中的函数调用流程

JQuery Ajax 更新 MySQL 数据库,但没有运行成功函数

使用 jQuery-Ajax REST API 调用的 iframe 显示不完整的页面

django - ajax - 从 jquery/ajax 调用 python 函数

使用 AJAX 从 VB 文件请求 webmethod 信息时出现问题

如何使用 jquery ajax 调用来调用 php 函数? [复制]