مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

h_sadegh

عضویت از 1398/08/02

دو IEnumerable مرتبط در یک View

  • یکشنبه 10 آذر 1398
  • 01:24
تشکر میکنم

با سلام و عرض خسته نباشیدخدمت دوستان عزیز

بنده میخوام پیغام های یک User رو نمایش بدم . داخل هر رکورد forech که پیغام User رو نشون میده باید یه forech دیگه هم باشه که از جدول admin Massage میاد که پیغام های مربوط به همون رکورد پیغام User رو نشون بده .

.

به این شکل

Asp.net MVC 5 Razor

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

h_sadegh

عضویت از 1398/08/02

  • یکشنبه 10 آذر 1398
  • 21:11

سلامی دوباره به دوستان عزیز.

مشکلم برطرف شد . گفتم روششو بزارم شاید برخی دوستان لازمشون شد.

من یک ViewModel ساختم با نام Massages به این صورت :

public class Massages
    {
        ////UserMassageID

        public int UserMassageID { get; set; }

        ////UserID
        public int UserID { get; set; }


        ////MassageText

     
        public string Text { get; set; }


        ////MassageTime
        public string DateTime { get; set; }


        ////MassageSeen
        public bool Seen { get; set; }

        public IEnumerable<AdminMassage> adminMassages { get; set; }
    }

و کلاسی ساختم به این صورت:

public IEnumerable<Massages> GetAllUserMassages(int UserID)
        {
            var UserMassages = DB.UserMassages.Where(um => um.UserID == UserID).Select(UM => new Massages()
            {
                UserID = DB.Users.Where(u => u.UserID == UM.UserID).FirstOrDefault().UserID,
                Text = DB.UserMassages.Where(um => um.UserMassageID == UM.UserMassageID).FirstOrDefault().Text,
                DateTime = DB.UserMassages.Where(um => um.UserMassageID == UM.UserMassageID).FirstOrDefault().DateTime.ToString(),
                Seen = DB.UserMassages.Where(um => um.UserMassageID == UM.UserMassageID).FirstOrDefault().Seen,
                adminMassages = DB.AdminMassages.Where(am => am.UserMassageID == UM.UserMassageID),
            });

            return UserMassages;
        }

و  در آخر

در کنترلر مربوطه  خروجی کلاس بالا رو دریافت میکنم

public ActionResult PUserMaasages(int? UserID)
        {
            if (UserID == null)
            {
                return null;
            }
            else
            {
                return PartialView(userBoxRepository.GetAllUserMassages(UserID.Value));
            }

        }

و در ویو هم به این صورت دریافت کردم:

@model IEnumerable<DataLayer.Massages>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)