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

195
Views
¿Cómo enviar datos de varias tablas a través de una llamada ajax?

Estoy enviando datos a un controlador usando JQuery, pero el controlador no recibe ningún dato.

Quiero publicar datos de dos tablas, los campos se crean dinámicamente y algunos están en el html.

Aquí hay una muestra de mi código:

 { coursesarray.push($("#coursename").val()); for (var i = 1; i < counter; i++) { var courses = $('#coursename' + i).val(); coursesarray.push(courses); } obj.tbl_course = coursesarray; obj.Name = Name; $.ajax( { type: "POST", datatype: "json", contenttype: "application/json/", url: "/Demo/SaveData/", data: JSON.stringify(obj), success: savesuccess, error:saveerror }); });

Método del controlador

 public JsonResult SaveData(tbl_name tblobj) { db.tbl_name.Add(tblobj); db.SaveChanges(); foreach (var a in tblobj.tbl_course) { db.tbl_course.Add(a); db.SaveChanges(); } return Json("success", JsonRequestBehavior.AllowGet); }

y el modelo es

 public partial class tbl_name { public int PkId { get; set; } public string Name { get; set; } public virtual ICollection<tbl_course> tbl_course { get; set; } }

y el segundo modelo es

 public partial class tbl_course { public int Pkid { get; set; } public Nullable<int> FkId { get; set; } public string Coursename { get; set; } public string CourseTeacher { get; set; } public virtual tbl_name tbl_name { get; set; } }
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

tengo mi clase

 public class Customer { public string id { get; set; } public string Name { get; set; } public string Address { get; set; } public List<Shop> Shops { get; set; } public override string ToString() { return JsonConvert.SerializeObject(this); } }

Y mi clase de Shop es así

 public class Shop { public string Name { get; set; } public string Address { get; set; } public string AddressContd { get; set; } public ShopContacts ShopContacts { get; set; } }

Y mi clase ShopContacts es como una clase simple, incluidas las propiedades fname, lname, etc.

Mi método de controlador es así

 [HttpPost] public IActionResult Post(Customer Data) { ... }

Y mi jQuery/Ajax es así,

 var contacts = { FirstName: $("#firstName").val(), LastName: $("#lastName").val(), Email: $("#email").val(), }; var ShopsData = [{ Name: $("#ptLocAddr").val(), Address: $("#ptLocAddr").val(), AddressContd: $("#ptLocAddrContd").val(), Country: $("#ptLocCountry").val(), State: $("#ptLocState").val(), City: $("#ptLocCity").val(), Zip: $("#zip").val(), FacilityType: $("#ptFacility").val(), Radius: $("#ptShopRadius").val(), ShopContacts: contacts }] var Data = { id: 0, Shops: ShopsData } $.ajax({ "url": "http://localhost:63025/api/values/", "type": "Post", "data":Data, success: function (d) { console.log(d); } })

Y está funcionando como se esperaba. En su caso, simplemente agregue los valores usando el método push () en jQuery y siga la forma en que lo estoy haciendo.

 var myArray = [];

Aquí puede hacer .each() y enviar el valor a la matriz como se muestra a continuación:

 myArray.push(yourForEachData);

Después

 var myData = { RuleID: $('#hidRuleId').val(), ProcessDefnID: $('#hidProcessDefnId').val(), RuleName: $('#txtEditRuleName').val(), Conditions: Conditions, ... }

Y en su método ajax simplemente coloque myData en el campo de datos, así

 { ..., data: myData, ..., }

¡Eso es todo! Definitivamente funcionará. Simplemente cambie el nombre de la clase, el nombre de la variable y las propiedades para que coincidan con sus requisitos.

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!