परिदृश्य:पासिंग डेटा
एक वस्तु जो नियंत्रक से उप वस्तुओं की एक सूची में शामिल है पारित करने के लिए की आवश्यकता है।
मुद्दा:
मैं वस्तु के मूल्य प्राप्त करने में सक्षम हूँ लेकिन ऑब्जेक्ट के अंदर उप वस्तुओं की सूची में कोई लाभ नहीं।
कोड:
index.cshtml
function sendData() {
var student = {
Id: 1,
Name: "xxx",
Marks: [{
Subject: "Maths",
Mark:80
},
{
Subject: "Science",
Mark: 75
}]
}
$.ajax({
url: '@Url.Action("Receive", "Home")',
data: student,
success: function (data) {
alert("done");
},
error: function (error) {
alert('error For details refer console log');
console.log(error);
}
});
}
HomeController.cs
public ActionResult Receive(Student student)
{
ViewBag.Message = "Your contact page.";
return View();
}
Student.cs
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public List<Marks> Marks { get; set; }
}
public class Marks
{
public string Subject { get; set; }
public decimal Mark { get; set; }
}
स्क्रीनशॉट:
क्रोम डिबगर सभी डेटा स्थापित किए गए पता चलता है।
लेकिन नियंत्रक में मैं मार्क्स
कीकिसी भी मदद के मूल्य नहीं मिल रहा है की सराहना की जाएगी। धन्यवाद।
धन्यवाद @Stephen होना चाहिए। अच्छी तरह से काम। बस उत्सुक, यह जीईटी विधि में क्यों काम नहीं कर रहा था? –
क्योंकि किसी GET कॉल में कोई बॉडी नहीं है और मान क्वेरी स्ट्रिंग (या रूट मान) से आते हैं और 'DefaultModelBinder' आपके द्वारा भेजे जाने वाले डेटा से मेल नहीं खाता है (यूआरएल को देखें जिसे आप समझने के लिए उत्पन्न कर रहे थे)। –
लेकिन यह काम करेगा यदि डेटा को पहले अनुच्छेद में टिप्पणी के अनुसार स्वरूपित किया गया था - यानी नाम उसी प्रारूप में हैं जिनका उपयोग आप अपने सी # कोड में किसी संपत्ति के मूल्य तक पहुंचने के लिए करेंगे। –