从 jQuery 调用 asp.net VB 函数



尝试从javascript(jquery)调用vb代码中的函数时出现以下错误

在视图 (.aspx) 中,我有以下代码:

<asp:ImageButton ID="imgbtnRetirar" runat="server" OnClientClick="return alerteliminar();" IdEliminar='<%# Eval("CODIGO") %>'
                                                            ImageUrl="~/Images/ic_eliminar.gif" ToolTip="Borrar al Usuario Aprobador"></asp:ImageButton>

在脚本中,我有以下代码:

<script type="text/javascript">
        function alerteliminar() {
        var letra="cancel";
        $("#texto").text("Seguro que desea Eliminar al usuario autorizador?");
        $( "#dialog-message" ).dialog({
          modal: true,
          buttons: {
            "Ok": function() {
              $( this ).dialog( "close" );
               var id = $("#ctl00_ctphFrmContent_grvLista_ctl02_imgbtnRetirar").attr("ideliminar");
                $.ajax(
                {
                    type: "POST",
                    url: "AprobadoresxModificacion.aspx/EliminarRegistro",
                    data: "{'Id':'" + id + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        console.log(msg)
                    }
                });
            },
            "Cancel": function() {
            $( this ).dialog("Eliminar");
            }
          }
        });
      }
    </script>

在 vb 代码中,我有以下内容:

<System.Web.Services.WebMethod()> _
    Public Function EliminarRegistro(ByVal Id As Integer) As String
        Try
            If Me.BorrarAprobador(Integer.Parse(Id)) Then
                Me.btnBuscar_Click(Nothing, Nothing)
                Return "OK"
            Else
                Me.Mensaje("No se pudo borrar el registro")
                Return "BAD"
            End If
        Catch ex As Exception
            Return ex.Message
        End Try
    End Function

我得到的错误如下:http://localhost:2091/WebSMEX/Paginas/Mantenimiento/AprobadoresxModificacion.aspx/EliminarRegistro 500(内部服务器错误)

> 确保 VB 方法Shared

Public Shared Function EliminarRegistro(ByVal Id As Integer) As String

还要确保使用 WebMethod 的类继承System.Web.Services.WebService

Public Class Service1
    Inherits System.Web.Services.WebService
    <System.Web.Services.WebMethod(BufferResponse:=False)> _
    Public Function GetBigData() As DataSet
        'implementation code
    End Function
End Class

参考

我需要做的是将 ASP.Net AJAX ScriptManager添加到页面,并将其EnablePageMethods属性设置为true,如下所示

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" EnableScriptGlobalization="True" EnablePageMethods="true">
        </asp:ScriptManager>

最新更新