با سلام و عرض خسته نباشیدخدمت دوستان عزیز
بنده میخوام پیغام های یک User رو نمایش بدم . داخل هر رکورد forech که پیغام User رو نشون میده باید یه forech دیگه هم باشه که از جدول admin Massage میاد که پیغام های مربوط به همون رکورد پیغام User رو نشون بده .
.
به این شکل
Asp.net MVC 5 Razor
سلامی دوباره به دوستان عزیز.
مشکلم برطرف شد . گفتم روششو بزارم شاید برخی دوستان لازمشون شد.
من یک 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>
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)