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

160
Vistas
Devuelva el objeto Json de Asp.net webMethod a la llamada Ajax

He seguido el método de llamada Ajax y el método web asp.net.

Mi función asp.net está devolviendo algunos valores. Los necesito en la llamada Ajax.

He intentado muchas cosas pero no he tenido éxito todavía.

LLAMADA AJAX

 <script type="text/javascript"> $(document).ready(function () { // Add the page method call as an onclick handler for the control. $("#<%=ddlEmailTemplate.ClientID%>").change(function () { debugger; var myparam = $("#<%=ddlEmailTemplate.ClientID%>").val(); //id name for dropdown list $.ajax({ type: "POST", url: "FileTax.aspx/ddlEmailTemplate_SelectedIndexChanged", data: '{param:"' + myparam + '"}', contentType: "application/json; charset=utf-8", success: function (data) { alert(data.d) } }); }); }); </script>

método web asp.net

Actualizado después de tu respuesta

 [WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)] public static string ddlEmailTemplate_SelectedIndexChanged(string param) { string subject; string Description; using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ForMyTaxConnectionString"].ConnectionString)) { con.Open(); DataSet ds = new DataSet(); using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = con; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Spo_ShowEmailTemplateContent"; cmd.Parameters.Add(new SqlParameter("@Tid", SqlDbType.Int)).Value = Convert.ToInt32(param); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { da.Fill(ds); con.Close(); da.Dispose(); } if (ds.Tables[0].Rows.Count > 0) { DataRow dr = ds.Tables[0].Rows[0]; subject = Convert.ToString(dr["TemplateSubject"]); Description = Convert.ToString(dr["TemplateDescription"]); } } } return JsonConvert.SerializeObject(new { subject = subject, description = Description }); // return subject ;
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Incluya using Newtonsoft.Json;

CS

 public string CheckDetails(string param1, string param2) { var chk = new check { subject = "hello! " +param1 , description = param2 +" Years Old" }; return JsonConvert.SerializeObject(chk); } public class check { public string subject { get; set; } public string description { get; set; } }

HTML

 <div> <input type="text" name="name" id="txtname"/> <input type="text" name="age" id="txtage"/> <input type="button" id="btnSubmit" value="details"/> </div>

jquery

 $(function () { $('#btnSubmit').on('click', function () { var options = { type: "POST", url: '/Ajax/CheckDetails/', data: '{param1:"' + $('#txtname').val() + '",param2:"' + $('#txtage').val() + '"}', async: false, cache: false, dataType: "json", contentType: "application/json; charset=utf-8", success: function (response) { if (response != null && response.d != null) { var data = response.d; alert(typeof (data)); //it comes out to be string //we need to parse it to JSON data = $.parseJSON(data); alert(data.subject); alert(data.description); } } }; $.ajax(options); }); });
about 4 years ago · Santiago Trujillo Denunciar

0

Para devolver un objeto JSON, debe serializar su respuesta. En su método, devuelva algo como return JsonConvert.SerializeObject(new { subject = subject, description = Description }); Deberá agregar una declaración de using en la parte superior para using Newtonsoft.Json; .

Para evitar errores sobre el uso de variables no asignadas, deberá proporcionar valores iniciales a las variables de subject y Description como `string subject = "". De esa forma, si no obtienen un nuevo valor, devuelven cadenas vacías.

En lugar de crear un objeto genérico de new { subject = subject, description = Description } , podría crear una clase que contenga esas propiedades:

 public class EmailTemplate { public string Subject { get; set; } public string Description { get; set; } }

Y luego serialícelo de la misma manera anterior: JsonConvert.SerializeObject(new EmailTemplate{ subject = subject, description = Description }); Pero si no va a usar esa clase de modelo en ningún otro lugar, no es necesario.

Finalmente, en su JavaScript, debería poder acceder a los datos de esta manera:

 success: function (data) { console.log("Subject:" + data.subject); console.log("Description:" + data.description); }
about 4 years ago · Santiago Trujillo Denunciar

0

Puede return Json(Your_object) . Pero debe cambiar la firma de su método para return IHttpActionResult . Un modelo de uso para devolver valores. Por ejemplo:

 public class EmailModel { public string TemplateSubject {get;set;} public string TemplateDescription {get;set;} }

Entonces su instrucción de devolución se verá como

 return Json(emailModel);
about 4 years ago · Santiago Trujillo 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