سلام
فرض کنید کلاس زیر را داریم
public class Photo { public int PhotoId { get; set; } public byte[] ImageData { get; set; } public DateTime DateUploaded { get; set; } public string Description { get; set; } public bool IsActive { get; set; } }
و
[HttpPost] public ActionResult Create(WilhanWebsite.DomainClasses.Photo photo) { if (ModelState.IsValid) { photo.DateUploaded = DateTime.Now; _context.Photos.Add(photo); _context.SaveChanges(); return RedirectToAction("Index"); } ///////////////////////////////بازگردندن عکس return View(photo); }
و
<div class="form-group"> @Html.LabelFor(model => model.ImageData, new { @class = "control-label col-md-2" }) <div class="col-md-10"> <input type="file" name="uploadImages" class="input-files" /> </div> </div>
حال مشکل من این است که وقتی ModelState.IsValid اجازه ثبت نمیدهد و به view مورد نظر برمیگردم عکس را نمایش نمی دهد
اما میخواهم عکس پاک نشود و کاربر دورباره عکس را اتنخاب نکند
باید چه کدی بنویسم
تصویر را در Session کاربر قرار دهید تا در سرور باقی بماند
سلام
مهندس
[HttpPost] public ActionResult Create(WilhanWebsite.DomainClasses.Photo photo) { if (ModelState.IsValid) { photo.DateUploaded = DateTime.Now; _context.Photos.Add(photo); _context.SaveChanges(); return RedirectToAction("Index"); } ///////////////////////////////بازگردندن عکس return View(photo); }
سشن را باید باچه چیزی مقداردهی کنم در کد بالا
شما نوع را از نوع byte گرفتید و دارید در بانک ذخیره میکنید
این اشتباه بزرگی است
تصویر را در مسیر فیزیکی ذخیره کنید و سپس در ویو با استفاده از آدرس نمایش دهید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)