Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

651
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!