none
No llama a webmethod RRS feed

  • Pregunta

  • Buenos dias,

    Tengo un código que veo correcto en vb.net que llama a través de jquery a una función y, no se por qué, pero ni siquiera salta al .aspx.vb para ejecutar el procedimiento almacenado. El caso es que, no se por qué, pero alguna vez que hago algún debug si llama a la función y se ejecuta. Además el resultado del ajax jquery me da Ok, pero no se ejecuta. A ver si me podéis ayudar por favor. Os pego el código de las dos páginas de la web, la aspx y la asp.vb

    nuBa.aspx

    --------------------------

    <%@ Page Language="vb" AutoEventWireup="false" MasterPageFile="~/adm/mp/admin.Master" CodeBehind="nuBa.aspx.vb" Inherits="dominio.nuBa" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">    
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <div class="page-wrap">
            <div class="page-content">
                <div class="container-fluid">
                    <div class="page-content__header">
                        <div>
                            <h2 class="page-content__header-heading"><asp:Literal ID="lisP" runat="server" /></h2>
                        </div>
                    </div>
                    <div class="row">
                        <div class="main-container table-container">
                            <table class="table table-striped table-bordered table-hover" id="tablaBanco">
                                <thead>
                                    <tr class="bg-info">
                                        <th class="text-primary col-sm-12 col-md-2 col-lg-3 col-xl-auto">
                                            <label for="tNombre" id="laNombre">
                                                <asp:Literal ID="lNombre" Text="Directorio" runat="server" />
                                            </label>
                                        </th>
                                        <th class="text-primary col-sm-12 col-md-3 col-lg-4 col-xl-auto">
                                            <label for="tCc" id="laCc">
                                                <asp:Literal ID="lCc" Text="Cuenta Corriente" runat="server" />
                                            </label>
                                        </th>
                                    </tr>
                                </thead>
                                <tbody id="cuerpoBanco">
                                    <tr>
                                        <th>
                                            <input type="text" id="tNombre" maxlength="30" class="form-control" value="Prueba Banco" />
                                        </th>
                                        <th>
                                            <input type="text" id="tCc" maxlength="30" class="form-control" style="width: 300px;" value="ES00 0045" />
                                        </th>
                                    </tr>
                                    <tr>
                                        <th>
                                            <div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
                                                <button id="bValidar" class="btn btn-info">Aceptar</button>
                                            </div>
                                        </th>
                                    </tr>
                                    <tr>
                                        <th>
                                            <label id="alta" style="font-weight: bold; color: #55bd86;" runat="server" />
                                        </th>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>             
                </div>
            </div>
        </div>
        <script src="../lib/css/vendor/jquery/jquery.min.js"></script>
        <script src="../lib/js/main.js"></script>
        <script>
            $(document).ready(function () {
                $("#bValidar").click(function () {
                    $.ajax({
                        type: "POST",
                        url: "nuBa.aspx/nuevoBanco",
                        data: '{nb: "texto", cc: "texto", ia: "1"}',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: alert('Bien'),
                        failure: function (data) {
                            alert(data.d);
                        }
                    });
                });
            });
        </script>
    </asp:Content>

    nuBa.aspx.vb

    --------------------

    Imports System.Web.Services
    Imports System.Data.SqlClient
    Public Class nuBa
        Inherits System.Web.UI.Page

        <WebMethod()>
        Public Shared Function nuevoBanco(ByVal nb As String, cc As String, ia As String) As Boolean
            Dim objComBanco As New banco
            Dim idBanco As Integer = objComBanco.Nuevo(nb, cc, CInt(ia))
            objComBanco = Nothing
            If idBanco > 0 Then
                Return True
            Else
                Return False
            End If
        End Function

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Session("idAdmin") = 1
            Session("ida") = 1

            If Not Session("idAdmin") > 0 Then
                Session("ulr") = HttpContext.Current.Request.Url.AbsoluteUri
                Response.Redirect(Application("admA"))
            Else
                cargarVariables()
            End If
        End Sub

        Private Sub cargarVariables()
            lisP.Text = "Alta Registro Bancario"
        End Sub

    End Class

    lunes, 13 de mayo de 2019 11:46

Respuestas

  • Hola decora así tú método, agregando ScriptMethod

      <WebMethod()> _
      <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 13 de mayo de 2019 23:10
    Moderador

Todas las respuestas

  • Hola decora así tú método, agregando ScriptMethod

      <WebMethod()> _
      <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 13 de mayo de 2019 23:10
    Moderador
  • Buenos dias,

    En primer lugar agradecerte tu ayuda. Te comento en varios puentos

    .- He importado la librería "System.Web.Script.Services" que no la tenía importada y lo he dejado así

    Imports System.Web.Services
    Imports System.Data.SqlClient
    Imports System.Web.Script.Services

    Public Class nuBa
        Inherits System.Web.UI.Page

        <WebMethod()>
        <ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
        Public Shared Function nuevoBanco(ByVal nb As String, cc As String, ia As String) As Boolean
            Dim objComBanco As New banco
            Dim idBanco As Integer = objComBanco.Nuevo(nb, cc, CInt(ia))
            objComBanco = Nothing
            If idBanco > 0 Then
                Return True
            Else
                Return False
            End If
        End Function

    .- Como me ha pasado alguna vez, ha funcionado la primera vez que lo he "debugeado", y luego no ha vuelto a funcionar (esto no se a que se debe, es extraño, pero me pasa)

    .- ¿Qué es exactamente lo que hemos hecho?

    Gracias de nuevo

    martes, 14 de mayo de 2019 9:40