عرض سلام و احترام
بنده یک viewmodel دارم که هنگام پست شدن با این خط کداقدام به ویرایش انجام شده میکنم:
public ActionResult ViewTicket(TicketingViewModel ticket,int Tid) { if (ModelState.IsValid) { ticket.iTicketText.TicketID = Tid; ticket.iTicketText.ApplicationUserID = User.Identity.GetUserID(); ticket.iTicketText.TextDate = Convert.ToDateTime(DateTime.Now.ToString()); db.TicketTexts.Add(ticket.iTicketText); db.Entry(ticket.iTicket).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(ticket); }
اما به خطا میخورم لطفا راهنمایی کنین بهترین روش برای ویرایش هنگام استفاده viewmodel به چه صورته؟
به نظر شما بدون قرار دادن متن خطا چگونه مشکل شما رو تشخص بدیم و شما رو راهنمایی کنیم ؟
متن خطا را قرار بدید.
ببخشید عذرخواهم خدمت شما ضمیمه کردم
سپاسگذارم
لطفا خط زیر رو توضیح بدید شما همزمان با اضافه کردن دارید موجودیت خودتون رو ویرایش می کنید به همین دلیل خطا دریافت می کنید.
db.TicketTexts.Add(ticket.iTicketText); db.Entry(ticket.iTicket).State = EntityState.Modified;
بله همون طور که فرمودید من دو تا موجودیت دارم داخل viewmodel که اسم خود ویومدل ticket است
به موجودیت اول(به اسم iTicketText) قراره یک فیلد جدید اضافه بشه و موجودیت دوم به اسم iTicket فقط قراره فقط ویرایش بشه (هر دو عمل در یک ویو مدل)
هردو مورد یک موجودیت جداگانه هستند ؟ لطفا بیشتر توضیح بدید.
بله یک سیستم تیکتینگ دارم طراحی میکنم
موجودیت iTicket تیکت ما هست
و موجودیت iTicketText موجودیت متن(های) یک تیکت است (با iTicket رابطه دارد)
در این اکشن در کنترلر یک متن قراره به اون تیکت اضافه بشه به عنوان مثال فرضا یک پاسخ برای تیکت! (تا اینجای کار ما داریم اضافه شدن رو در ویومدل انجام میدیم)
و همزمان با اضافه شدن خود تیکت اصلی با موجودت iTicket که خدمتتان عرض شد قراره فیلد تاریخش به روز بشه (در اینجا هم بروز رسانی موجودیت دیگرمان در حال انجامه)
لذا دو عمل اضافه شده و ویرایش شدن (هر کدام برای یک موجودیت جداگانه در ویومدل مان باید صورت گیرد)
مهندس عزیز.بریک پوینت بذار ببین اطلاعاتی که داری ویرایش میکنی در بانکت وجود داره؟ اطلاعش بده که اگه درسته شرایطش برای خودم به وجود بیارم.درود
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)