首页 > 解决方案 > 在 asp.net mvc 中编辑图像

问题描述

我在上传文件夹中保存了一张图片,并在 SQL Server 中保存了它的路径。当我单击编辑按钮时,它应该显示上传的图像,当我选择新图像时,它应该删除现有图像文件并上传新图像。

这是代码:

<div class="card">
<div class="card-header">
    <h5 class="card-title text-uppercase">add new</h5>
</div>
<div class="card-body">
    @using (Html.BeginForm("Edit", "ImageSlider", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.AntiForgeryToken()
        @Html.HiddenFor(m=>m.Id)
        <div class="form-group">
            @Html.LabelFor(m => m.ImagePath)
            <div class="custom-file">
                <input type="file" name="postedFile" class="custom-file-input" id="customFile">
                <label class="custom-file-label" for="customFile">Choose file</label>
            </div>
        </div>
        <img src="@Url.Content(Model.ImagePath)" alt="@Model.ImageName" class="img-thumbnail" width="100" height="100" />
        <div class="form-group">
            <button type="submit" class="btn btn-sm btn-primary rounded-0 text-uppercase">Upload</button>
            <a href="@Url.Action("List","ImageSlider")" class="btn btn-sm btn-primary rounded-0 text-uppercase"><i class="fas fa-backward"></i> Back to List</a>
        </div>
    }
</div>

这是我的控制器:

[HttpGet]
    [Route("Edit/{id}")]
    public ActionResult Edit(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        var slider = db.ImageSliders.Find(id);
        if (slider == null)
        {
            return HttpNotFound();
        }
        return View(slider);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    [Route("Edit/{id}")]
    public ActionResult Edit(ImageSlider imageSlider)
    {
        if (ModelState.IsValid)
        {
            db.Entry(imageSlider).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("List", "ImageSlider");
        }
        return View();
    }

标签: sql-serverasp.net-mvcentity-framework

解决方案


推荐阅读