尝试从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(内部服务器错误)
答案 0 :(得分:0)
确保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
答案 1 :(得分:0)
我需要做的是将ASP.Net AJAX ScriptManager添加到页面并将其EnablePageMethods属性设置为true,如下所示
<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" EnableScriptGlobalization="True" EnablePageMethods="true">
</asp:ScriptManager>