Programmer نشر 13 يناير 2016 أرسل تقرير نشر 13 يناير 2016 (معدل) عندي صف Model Class يمثل الطالب Student Class وصف آخر يمثل المساق Course أريد إنشاء كائن من كل صف وإظهاره إلى صفحة View وعرض اسم الطالب مع المساق الخاص به هل يوجد طريقة لعمل ذلك في ASP.Net MVC؟ تم التعديل في 13 يناير 2016 بواسطة Programmer اقتباس
0 Lujain Maaz نشر 14 يناير 2016 أرسل تقرير نشر 14 يناير 2016 نعم يمكنك تمرير أكثر من نوع كائن (أكثر من Model Class) إلى View ولكن الأمر ليس بالبساطة الشديدة وذلك لأن الـ View لا يمكنها استقبال أكثر من نوع Model واحد فقط ((أي كائن أو مجموعة كائنات من نوع واحد one type of object/objects)).مثلًا لنفرض أنه لديك Model Class يدعى Student يمكنك تمرير كائن من نوع Student أو مجموعة كائنات من نفس النوع وهو Student إلى الصفحة View. ولكن لا تستطيع تمرير كائن من نوع Student وكائن من نوع Course (أكثر من Model Class) إلى View إلا إن قمتَ بجمعهما ضمن Model Class جديد مثلًا Student_Course ومن ثم تمرير كائن من نوع Student_Course إلى الـ View. وهذا ما يسمى بـ ViewModels.مثال:Student Model Class public class Student { public string firstName { get; set;} public string lastName { get; set; } }Course Model Classpublic class Course { public int courseNumber { get; set; } public string courseName { get; set; } }Student_Course Model Class public class Student_Course { public Course course { get; set; } public List<Student> students{ get; set; } } الآن لتمرير الكائن من نوع Student_Course إلى View ولتكن الصفحة index.cshtml يتم ذلك عن طريق الدالة الخاصة بالصفحة index.cstml وتدعى index وهي دالة Action Method الموجودة في المتحكم Controller:public ActionResult Index() { Course mathCourse = new Course(); mathCourse.courseNumber = 101; mathCourse.courseName = "Math"; Student std1 = new Student(); std1.firstName = "Mark"; std1.lastName = "Join"; Student std2 = new Student(); std1.firstName = "John"; std1.lastName = "Doe"; List<Student> students = new List<Student>(); students.Add(std1); students.Add(std2); Student_Course obj = new Student_Course(); obj.course = mathCourse; obj.students = students; return View(obj); }تم تمرير الكائن obj من نوع Student_Course عبر الدالة View التي تُرجعها الدالة Index Action Method الخاصة بالصفحة index.cshtmlأخيرًا لجعل الصفحة index.cshtml تستقبل الكائن obj اكتب السطر التالي:@model MyMVCProject.Models.Student_Courseلعرض محتوى الكائن obj في الصفحة index.cshtml:<h1>Course Name: @Model.course.courseName</h1> @foreach (var item in Model.students) { <h1>Student Name: @item.firstName @item.lastName</h1> }ملاحظة: يستحسن دائمًا وضع الصفوف Model Class والتي تحوي أكثر من Model Class في مجلد آخر منفصل عن المجلد Models وتسميته بـ View Modelليصبح مسار Student_Course على الشكل التالي:@model MyMVCProject.ViewModels.Student_Course 1 اقتباس
السؤال
Programmer
عندي صف Model Class يمثل الطالب Student Class وصف آخر يمثل المساق Course أريد إنشاء كائن من كل صف وإظهاره إلى صفحة View وعرض اسم الطالب مع المساق الخاص به هل يوجد طريقة لعمل ذلك في ASP.Net MVC؟
تم التعديل في بواسطة Programmer1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.