unknown sobrecarga programacion metodos metodo method funciones estructura ejemplos consola clases c# asp.net ajax pagemethods

programacion - sobrecarga de metodos c# pdf



Método web desconocido. Nombre del parámetro: nombre de método (5)

Falta el [Método Web] sobre la función del lado del servidor también causará este error.

Al investigar este problema, la mayoría de los problemas de SO se static método static como una solución.

Como no funciona con el método Web real (y un poco sofisticado), acabo de crear uno simple para verificar si es posible alcanzar el método en sí.

[WebMethod] [ScriptMethod(UseHttpGet = false)] public static string HelloWorld() { return "Hello World!"; }

La llamada.

<script> $(document).ready(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "usersWebMethods.aspx/HelloWorld", dataType: "json", success: function (data) { alert(data.d); } }); }); </script>

Siempre se reduce a 500 (Internal Server Error)

Unknown web method HelloWorld. Parameter name: methodName Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Unknown web method HelloWorld. Parameter name: methodName

¿Por qué está fallando esto?


Para mí, el principal problema fue cambiar la post javascript para que no pasara ningún argumento, como

$http.post("Status.aspx/MyData", {})

Luego, para verificar que no se almacenó en caché, public static string MyData() [System.Web.Services.WebMethod] en el código detrás del archivo sobre public static string MyData() . Luego construí el proyecto para el fracaso, luego volví a agregar el atributo eliminado mencionado anteriormente y el éxito.

Al correr funcionó.


Para ser honesto, me he dado cuenta "de nuevo" de lo cansados ​​que podemos estar en algunos casos.

Para mí era solo un método "privado" en lugar de uno público.


También tuve este problema, pero de manera ligeramente diferente tuve este método en un archivo .asmx y por eso encontré el problema "estático", pero de una manera diferente.

Si tiene un método como parte de su clase de página, debe ser static .

Si ha puesto un método en un archivo .asmx para usar en varias páginas, no debe ser static .


Tuve un problema en el archivo .aspx real, la línea

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxx.xxx.cs" Inherits="xxx.xxx" %>

no estaba presente en el código. ¿Cómo se cambió? No lo sé :(.