• 0

كيف أمرر أكثر من كائن لصف Model إلى View في MVC؟

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن