اذهب إلى المحتوى

السؤال

نشر (معدل)

أريد تمرير مجموعة من الكائنات Objects المنتمية لـ Model class مثلًا من الصف Student Class أريد إنشاء 4 كائنات وتمريرها إلى صفحة View كيف أقوم بذلك؟

تم التعديل في بواسطة Programmer

Recommended Posts

  • 0
نشر (معدل)

لتمرير أكثر من كائن واحد Object من Model Class إلى View عن طريق المتحكم Controller يتم ذلك بإنشاء مصفوفة أو قائمة List من نوع الكائن وتعبئتها بالعناصر Objects التي تريد تمريرها للـ View حيث تقوم عندئذ بتمرير المصفوفة ككل إلى الصفحة View.

مثلًا إنشاء قائمة List من نوع MyModelClass في الدالة index الموجودة في المتحكم ومن ثم تعبئتها وتمريرها كمعامل للدالة ()View التي تُرجع الصفحة index.cshtml:

public class myTemplateController : Controller
    {
        public ActionResult Index()
        {
            MyModelClass model1 = new MyModelClass();
            model1.firstName = "First Name1";
            model1.lastName = "Last Name1";

            MyModelClass model2 = new MyModelClass();
            model2.firstName = "First Name2";
            model2.lastName = "Last Name2";

            MyModelClass model3 = new MyModelClass();
            model3.firstName = "First Name3";
            model3.lastName = "Last Name3";

            List<MyModelClass> modelLst = new List<MyModelClass>();
            modelLst.Add(model1);
            modelLst.Add(model2);
            modelLst.Add(model3);

            return View(modelLst);
        }
        ....

لإظهار عناصر القائمة في الصفحة index.cshtml يجب أن يتم إعلام الصفحة أنها ستستقبل مجموعة من الكائنات List of objects وذلك عن طريق كتابة السطر التالي في أعلى الصفحة index.cshtml

@model IEnumerable<MyMVCProject.Models.MyModelClass>

يعني السطر أعلاه أن الصفحة index.cshtml تستقبل مجموعة من الكائنات Objects من نوع MyModelClass. 

الآن لإظهار محتوى عناصر القائمة في الصفحة index.cshtml أنشئ حلقة تكرار وذلك للمرور عبر القائمة List والحصول على الكائنات وطباعة محتوى كل منها:

@foreach(var item in Model)
{
   <h1>@item.firstName @item.lastName</h1> 
}

ليصبح المثال على الشكل التالي:

@model IEnumerable<MyMVCProject.Models.MyModelClass>
@{
    ViewBag.Title = "Home";
  
    Layout = "~/Views/Shared/LayoutPage.cshtml";
}

@foreach(var item in Model)
{
   <h1>@item.firstName @item.lastName</h1> 
}

 

 

 

تم التعديل في بواسطة Lujain

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...