error 500

محمود تقی زاده

عضویت : 1397/11/17 پرسش ها : 14 پاسخ ها : 17

error 500

ارسال شده در : ‫۱ ماه قبل، یک شنبه ۱ دی ۱۳۹۸، ساعت ۱۹:۲۲

سلام استاد

ارور دقیقی که بهش خوردم اینه

The model item passed into the dictionary is of type 'System.Data.Entity.Infrastructure.DbQuery`1[DataLayer.LessonsOffers]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[DataLayer.TimeOffers]'.

ولی خب اصلا چیزی از جنس LessonsOffers ارسال نمیشه .

اینم کد هام:

public ActionResult CreateTimeOffer()
        {
            ViewBag.dayOfWeek = new SelectList(db.DayOfWeeks.OrderBy(r => r.DayOfWeekID), "DayOfWeekID", "DayOfWeek");
            return PartialView();
        }

 

 

@model DataLayer.TimeOffers

@{
    Layout = null;
}
<div class="row" style="text-align:right">
    <div class="col-xl-10 col-lg-9 col-md-8 ">
        <div class="  mt-md-3 mb-5 mx-0">

            @using (Ajax.BeginForm("CreateTimeOffer", "ProfessorsOffers", FormMethod.Post, new AjaxOptions()
            {
                OnSuccess = "success",
                UpdateTargetId = "ListMyOffer"
            }))
            {
                @Html.AntiForgeryToken()

                <div class="form-group">
                    @Html.LabelFor(model => model.DayOfWeekID, "روز هفته", htmlAttributes: new { @class = "control-label col-md-4" })
                    <div class="col-md-12">
                        @Html.DropDownListFor(model => model.DayOfWeekID, ViewBag.dayOfWeek as SelectList, "انتخاب روز", htmlAttributes: new { @class = "form-control", @id = "DayOfWeekID" })
                        @Html.ValidationMessageFor(model => model.DayOfWeekID, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-horizontal">
                    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                    <div class="form-group">
                        @Html.LabelFor(model => model.TimeStart, htmlAttributes: new { @class = "control-label col-md-4" })
                        <div class="col-md-12">
                            @Html.EditorFor(model => model.TimeStart, new { htmlAttributes = new { @class = "form-control" } })
                            @Html.ValidationMessageFor(model => model.TimeStart, "", new { @class = "text-danger" })
                        </div>
                    </div>

                    <div class="form-group">
                        @Html.LabelFor(model => model.TimeEnd, htmlAttributes: new { @class = "control-label col-md-4" })
                        <div class="col-md-12">
                            @Html.EditorFor(model => model.TimeEnd, new { htmlAttributes = new { @class = "form-control" } })
                            @Html.ValidationMessageFor(model => model.TimeEnd, "", new { @class = "text-danger" })
                        </div>
                    </div>

                    

                    <div class="form-group">
                        <div class="col-lg-offset-2 col-xl-10">
                            <input type="submit" value="ثبت کاربر" id="myButton" class="btn btn-outline-success" onclick="$.validator.unobtrusive.parse($('form'));" /> |
                            <a data-toggle="modal" style="cursor:pointer" data-target="#myOfferModal" onclick="success()">
                                <i class="btn btn-outline-dark btn-large">بازگشت</i>
                            </a>
                        </div>
                    </div>
                </div>
            }
        </div>
    </div>
</div>

 

 

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult CreateTimeOffer(TimeOffers timeOffer)
        {
            if (ModelState.IsValid)
            {
                //var user = db.Users.Find(int.Parse(Session["MyID"].ToString()));
                var userId = 1;                

                var tempoid = db.Offers.FirstOrDefault(f => f.EndOfDeadline > DateTime.Now);
                if (tempoid != null)
                {
                    var offerId = tempoid.OfferID;
                    TimeOffers to = new TimeOffers()
                    {
                        TimeStart = timeOffer.TimeStart,
                        TimeEnd = timeOffer.TimeEnd,
                        DayOfWeekID = timeOffer.DayOfWeekID,
                    };

                    var temppoid = db.ProfessorsOffers.Where(u => u.UserID == userId).FirstOrDefault(p => p.Offers.EndOfDeadline > DateTime.Now);
                    if (temppoid != null)
                    {
                        to.ProfessorOfferID = temppoid.ProfessorOfferID;
                    }
                    else
                    {
                        ProfessorsOffers po = new ProfessorsOffers()
                        {
                            OfferID = offerId,
                            CreateTime = DateTime.Now,
                            IsActive = false,
                            UserID = userId
                        };
                        db.ProfessorsOffers.Add(po);
                        try
                        {
                            db.SaveChanges();
                        }
                        catch
                        {
                            ModelState.AddModelError("DayOfWeekID", "خطا در ذخیره سازی در پایگاه داده");
                            return View();
                        }
                        to.ProfessorOfferID = po.ProfessorOfferID;
                    }
                    db.TimeOffers.Add(to);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch
                    {
                        ModelState.AddModelError("DayOfWeekID", "خطا در ذخیره سازی در پایگاه داده");
                        return View();
                    }
                    return PartialView("ListMyOffers", db.LessonsOffers.Where(t => t.ProfessorsOffers.UserID == userId && t.ProfessorsOffers.Offers.EndOfDeadline > DateTime.Now).OrderBy(d => d.Lessons.LessonName));
                }
                ModelState.AddModelError("DayOfWeekID", "فرصت ایجاد پیشنهاد به پایان رسیده است");
                return View();
            }

            return PartialView();
        }

 

ایمان مدائنی

عضویت : 1396/09/10 پرسش ها : 5 پاسخ ها : 9428
ارسال شده در :‫۱ ماه قبل، یک شنبه ۱ دی ۱۳۹۸، ساعت ۱۹:۲۹

سلام 

نوع ارسالی همخوانی ندارد 

0 تشکر

محمود تقی زاده

عضویت : 1397/11/17 پرسش ها : 14 پاسخ ها : 17
ارسال شده در :‫۱ ماه قبل، یک شنبه ۱ دی ۱۳۹۸، ساعت ۱۹:۳۲

بله استاد متوجه شدم خودم، ولی هرجور بررسی میکنم از یک نوع هستند و اصلا LessonOffer رد وبدل نمیشه :|

بخاطر همین از شما پرسیدم که تخصصی کمک کنید

0 تشکر

ایمان مدائنی

عضویت : 1396/09/10 پرسش ها : 5 پاسخ ها : 9428
ارسال شده در :‫۱ ماه قبل، یک شنبه ۱ دی ۱۳۹۸، ساعت ۱۹:۵۹

دیباگ کنید ببینید کجا خطا پرتاب میشه 

0 تشکر

برای ارسال پاسخ باید وارد شوید و یا در سایت عضو شوید