Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
cómo llamar al método aspx.vb usando ajax

cómo llamar al método vb.net desde ajax, envío una matriz como parámetro en ajax y no funciona, este es el código ajax y javascript

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> $("#Button1").click(function () { var Years = document.getElementById("Options").querySelectorAll(".selected"); $.ajax({ type: "POST", url: "NewScenarioProfilePage.aspx/CalculateSum", data: "{'yearvalue ':'" + Years + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: OnSuccess, failure: function (response) { ' this alert didn't show alert(response.d); } }); });

y este es el método vb Ps este valor de año puede ser una matriz si tiene más de 2 valores o será una variable entera si es un valor

 <System.Web.Services.WebMethod()> Public Shared Function CalculateSum(ByVal yearvalue as Integer) As String MsgBox("calculate sum") Dim Result As Integer = yearvalue Return Result.ToString() End Function

y el msgbox no dispara. No sé cuál es el problema. este es el error en la inspección cuando hago clic en el botón

 jquery.min.js:4 POST https://localhost:44351/NewScenarioProfilePage.aspx/CalculateSum 401 send @ jquery.min.js:4 ajax @ jquery.min.js:4 (anonymous) @ NewScenarioProfilePage:477 dispatch @ jquery.min.js:3 r.handle @ jquery.min.js:3
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Recibiste un código de estado 401 como respuesta. Entonces, probablemente te falte el mecanismo de autenticación.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hum, creo que debes eliminar ese msgbox del lado del servidor; lo arruinará EN GRANDE, ya que las llamadas ajax son asíncronas.

Prueba este ejemplo:

Coloquemos dos cuadros de texto, un botón, y tomemos el valor del primer cuadro de texto, ejecútelo a través de la función (digamos 2 veces por diversión).

Entonces tenemos esto para el código del servidor:

 <System.Web.Services.WebMethod()> Public Shared Function CalculateSum(ByVal yearvalue As Integer) As String Debug.Print("cal sum run!!") Dim Result As Integer = yearvalue * 2 Return Result.ToString() End Function

¿Y para el lado del cliente? no solo tengamos el código js como "sentado" allí, llamemos a una rutina y hagamos la publicación.

Entonces, agreguemos un botón asp.net estándar, pero TENGA EN CUENTA cómo SOLAMENTE llamamos al código del lado del cliente con ese botón (onClientClick). y usamos return false para que el botón no se devuelva.

 <div> Enter year: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Test Ajax call" OnClientClick="mytest();return false"/> <br /> Result ajax from server: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </div> <script> function mytest() { myyear = $('#TextBox1').val() $.ajax({ type: "POST", url: "AjaxTestFun.aspx/CalculateSum", data: JSON.stringify({ yearvalue: myyear }), contentType: "application/json; charset=utf-8", dataType: "json", success: function (rData) { // put results send back into TextBox2 $('#TextBox2').val("Result from server = " + rData.d) }, failure: function (rData) { alert("error " + rData.d); } }); } </script>

Entonces, la salida ahora se ve así:

ingrese la descripción de la imagen aquí

Entonces, usé un debug.print. Use eso o el registro de la consola, ya que cuando comienza a usar llamadas ajax, entonces un msgbox del lado del servidor a menudo puede lastimarlo.

Y si la página web actual funciona bien, entonces lanzar un método web también funcionará (NO es un problema de autenticación).

También usé JSON.stringify. "Asume" que el primer valor es texto, y el segundo valor puede ser una variable como la que usé, como mymyear, o podría usar '12335' entre comillas.

Así que stringify REALMENTE ayuda a la pobreza y el sufrimiento del mundo al no tener que tratar de concatenar un montón de variables y un ENORME lío de comillas simples o dobles.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda