从jquery调用asp.net vb函数
在尝试从javascript(jquery)调用vb代码中的函数时,出现以下错误 在视图(.aspx)中,我有以下代码:从jquery调用asp.net vb函数,jquery,asp.net,vb.net,Jquery,Asp.net,Vb.net,在尝试从javascript(jquery)调用vb代码中的函数时,出现以下错误 在视图(.aspx)中,我有以下代码: <asp:ImageButton ID="imgbtnRetirar" runat="server" OnClientClick="return alerteliminar();" IdEliminar='<%# Eval("CODIGO") %>'
<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>
500(内部服务器错误)确保VB方法是共享的
公共共享函数EliminarRegistro(ByVal Id为整数)为字符串
还要确保使用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
继承System.Web.Services.WebService
_
公共函数GetBigData()作为数据集
'实现代码
端函数
末级
我需要做的是向页面添加一个ASP.Net AJAX ScriptManager,并将其EnablePageMethods属性设置为true,如下所示
<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" EnableScriptGlobalization="True" EnablePageMethods="true">
</asp:ScriptManager>
一种可能性是,您的Id
参数是Integer
,但您将其作为带引号的字符串值在JSON中传递:数据:“{Id':'”+Id+“}”
。尝试删除以下值周围的引号:数据:“{Id':“+Id+”}”
。首先,您需要了解您不是从jQuery调用VB.NET。您正在调用web方法。您正在发送请求。然后asp.net知道如何调用特定的方法。但是没有直接的联系。除此之外,我知道错误可能发生在BorrarAprobador
和btnBuscar\u单击和Mensaje
中。另外,请停止此Integer.Parse(Id)
或将此ByVal Id声明为String
-您的JASON被引用。试试“{Id:+Id+“}”
我试了两种方法,但我得到了相同的错误。我个人不喜欢这样:``。我喜欢创建虚拟目录。然后,我只能调试website/web方法,并通过fiddler2调用它。当我看到它工作时,我会想如果我的AJAX工作,当我将公共共享函数EliminarRegistro(ByVal Id为整数)作为字符串时,我会得到以下错误:“Me”仅在实例方法中有效。y Try,我遇到以下错误:在没有类的显式实例的情况下,无法从共享方法或共享成员初始值设定项中引用类的实例成员。我使用此选项:Dim vb As New Paginas_Mantenimiento_AprobadoresXmodificion Try If vb.BorrarAprobador(Integer.Parse(Id))然后vb.btnBuscar_单击(无,无)返回“确定”,否则vb.Mensaje(“无)返回“坏”End If Catch ex As Exception Return ex.Message End Try--我得到了相同的错误,我认为您无法从WebMethod访问btnBuscar\u Click
或Mensaje
,我只是尝试返回链,并给出了相同的错误。只返回“OK”。
<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" EnableScriptGlobalization="True" EnablePageMethods="true">
</asp:ScriptManager>