¿Cómo pasar el parámetro de javascript al código detrás?

Intenté pasar el parámetro de jscript al código subyacente, pero no funcionó. Mi código:

[C #]

[WebMethod]
public static String sendEmail(String str)
{
     ...
     msg.body = str;
     ...
     return str;
}

[jscript]

Si uso la alerta de función, devuelve nulo

function onOkClickButton()
{
    var content = "Hello";
    alert("<%=sendEmail(" + content + ")%>");
}

si uso PageMethod, el cuerpo de mi correo electrónico es nulo

<asp:ScriptManager enablePageMethods="true"></asp:ScriptManager> 
function onOkClickButton()
{
    var content = "Hello";
    PageMethods.sendEmail(content, onSuccess, onError);
}
function onSuccess(text)
{
    alert(text)
}

function onError(text)
{
    alert(text)
}

¿Me puedes ayudar?

preguntado el 03 de julio de 12 a las 23:07

Has hecho esto: -

2 Respuestas

jQuery ajax sería el método más fácil, en mi opinión:

function onOkClickButton()
{
    var content = "Hello";

    $.ajax({
      type: "POST",
      url: "urlToPageHostingSendEmail.aspx/sendEmail",
      data: { str: content }
    }).success(function( msg ) {
      alert( msg );
    });
}

Respondido 04 Jul 12, 00:07

Gracias, la función sendEmail se colocó en MasterPage. Pero cuando configuro la URL: "MasterPage.master.aspx/sendEmail", no funciona. - Trong Lam Phan

Tenerlo en la página maestra me parece sucio, y no estoy 100% seguro de que funcione, pero es muy posible que funcione. Actualmente no estoy en condiciones de probarlo. Esta página es un buen recurso para configurar correctamente WebMethods en aplicaciones ASP.NET - Jaime Torres

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.