1
보기 코드ASP NET MVC 5 제거 파일
@using(Html.BeginForm("Edit",
"Products",
FormMethod.Post,
new {
enctype = "multipart/form-data"
})) {
@Html.AntiForgeryToken()
< div class = "form-horizontal" >
@Html.ValidationSummary(true, "", new {
@class = "text-danger"
})
@Html.HiddenFor(model => model.Id)
< div class = "form-group" >
@Html.LabelFor(model => model.Image, htmlAttributes: new {
@class = "control-label col-md-2"
}) < div class = "col-md-10" >
< img src = "@Url.Content(Model.Image)"
width = "150"/>
< /div> < /div>
}
컨트롤러
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Product product, HttpPostedFileBase file) {
if (ModelState.IsValid) {
Product p = new Product {
Id = product.Id,
Name = product.Name,
Description = product.Description,
Image = product.Image
};
if (file != null) {
string Image = Path.Combine(Server.MapPath("~/Upload"), Path.GetFileName(file.FileName));
file.SaveAs(Image);
p.Image = "~/Upload/" + file.FileName;
}
db.Entry(p).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
} else {
return View(product);
}
}
public ActionResult Edit(int ? id) {
if (id == null) {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Product product = db.Products.Find(id);
if (product == null) {
return HttpNotFound();
}
return View(product);
}
가 나는 버튼으로 사진을 삭제하고 싶습니다. 내가 어떻게 해 ? 제품을 삭제할 수는 있지만 사진을 삭제할 수는 없습니다. Id가있는 제품을 삭제할 수 있습니다. 인터넷에서 예제를 만들려고했으나 할 수 없었습니다. 설명을 해보시겠습니까?
데이터베이스 테이블에'ImageName' 컬럼을 만들고'product-name-123'과 같은 이미지 이름을 저장 한 다음 제품 ID를 사용하여 ImageName을 가져 와서 [File.Delete] (https://stackoverflow.com/questions/)를 사용하십시오. 6391711/how-to-delete-a-file-after-checking-that-exists)를 사용하여 이미지를 삭제하십시오. – stom
이해가 안됩니다. 예를들 수 있습니까? 고맙습니다. –
이미지 이름을 폴더에 저장하는 방법을 알 수 있습니까? 이름은 어떻게 생겼습니까? – stom