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

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

ارسال اطلاعات به ویومدلviewmodel

دوشنبه, 09 اردیبهشت 1398 18:42

ارسال اطلاعات به ویومدلviewmodel

سلام و احترام.
در هنگام ارسال اطلاعاتی  به ویو مدل با خطای 
he model item passed into the dictionary is of type 'System.Collections.Generic.List`1[Muller.Domain.Models.AboutUsModel]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Muller.ViewModel.AboutUsViewModel]'.
مواجه می شوم.اگر بخواهم به صورت  مستقیم هم ایتم ها رو به viewmodel تبدیل کنم ،فیلد ها شناخته نمی شوند.کد زیر

//var obj = new AboutUsViewModel()
            //{
            //    Id = item.id,
            //    IsDeleted = false,
            //    RegisterDate = DateTime.Now,
            //    AboutUsEn = "asd",
            //    AboutUsFa = "adas"

            //};

چطور می توانم اطلاعات را به ویومدل ارسال کنم؟

از الگوی جنریک ریپوزیتوری استفاده کردم.

ممنون

ﺳﻪ شنبه, 10 اردیبهشت 1398 08:03

سلام

برادر جان اگر بصورت جنریک استفاده کرده ای خب باید موقع تعریف هم کلاس سازنده را بهش معرفی کنی!!!

من بقیه ی گروژه ام را ندیده ام اما حدس می زنم از روی ارور که کلاست را بصورت اینترفیس از کلاس دیگری ارث می بری!

AboutUsViewModel<T>(){}

ﺳﻪ شنبه, 10 اردیبهشت 1398 10:01

با سلام

لطفا اطلاعات بیشتری را از این موضوع و خود ماهیت ViewModel تون قرار بدید تا بتونیم راهنماییتون کنیم

ﺳﻪ شنبه, 10 اردیبهشت 1398 11:49

متشکرم.

من از الگوی جنریک ریپوزیتوری استفاده کردم.

نمونه Context:

        public DbSet<Muller.Domain.Models.AboutUsModel> AboutUsModel { get; set; }

مدل

[Key]
        public long Id { get; set; }
        public DateTime RegisterDate { get; set; }
        public bool IsDeleted { get; set; }

        //[AllowHtml]
        //[DataType (DataType.MultilineText)]
        //[Display(Name ="متن درباره ما-فارسی")]
        public string AboutUsFa { get; set; }//About Us Persian

        //[AllowHtml]
        //[DataType(DataType.MultilineText)]
        //[Display(Name = "متن درباره ما-انگلیسی")]

        public string AboutUsEn { get; set; }//About Us English

ویومدل

[Key]
        public long Id { get; set; }
        public DateTime RegisterDate { get; set; }
        public bool IsDeleted { get; set; }


        [AllowHtml]
        [DataType(DataType.MultilineText)]
        [Display(Name = "متن درباره ما-فارسی")]
        public string AboutUsFa { get; set; }//About Us Persian

        [AllowHtml]
        [DataType(DataType.MultilineText)]
        [Display(Name = "متن درباره ما-انگلیسی")]

        public string AboutUsEn { get; set; }//About Us English

و لایه سرویس

public IEnumerable<AboutUsModel> GetAllAboutUs()
        {
            var query = _db.AboutUsRepository.Get();
                 
            return query.ToList();
        }

و اکشن به صورت

 public ActionResult Index()
        {

            AboutUsService objectme = new AboutUsService();
            AboutUsViewModel ab = new AboutUsViewModel();

            List<AboutUsViewModel> empViewModels = new List<AboutUsViewModel>();

            var item = objectme.GetAllAboutUs();

           


            var obj = new AboutUsViewModel()
            {
                Id = empViewModels.Id,
                IsDeleted = false,
                RegisterDate = DateTime.Now,
                AboutUsEn = "asd",
                AboutUsFa = "adas"

            };

            return View(item);
        }
ریپوزیتوری هم
 public virtual IEnumerable<Tentity> Get(Expression<Func<Tentity, bool>> where = null, Func<IQueryable<Tentity>, IOrderedQueryable<Tentity>> orderby = null, string includes = "")
        {
            IQueryable<Tentity> query = _dbset;
            if (where != null)
            {
                query = query.Where(where);
            }
            if (orderby != null)
            {
                query = orderby(query);
            }

            if (includes != "")
            {
                foreach (string includ in includes.Split(','))
                {
                    query = query.Include(includ);
                }
            }
            return query.ToList();
        }

نوشته شده.

برداشت من از راهنمایی قبلی این بود که ویو مدل باید به صورتی به شکل جنریک به جنریک ریپوزیتوری تبدیل بشه.

ممنون میشم راهنمایی کنید.

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید