当我尝试更新一个图像时,我有两个图像一起显示没有发生任何事情我希望能够更新一个图像而第二个图像保持不变
Controller.cs
public ActionResult Edit(MainSections mainSections, HttpPostedFileBase file , HttpPostedFileBase file2)
{
if (ModelState.IsValid)
{
var mainInDb = db.MainSections.Find(mainSections.MainID);
if (file != null)
{
string ImageName = System.IO.Path.GetFileName(file.FileName);
string physicalPath = Server.MapPath("~/images/" + ImageName);
file.SaveAs(physicalPath);
mainInDb.Img = ImageName;
}
if (file != null)
{
string ImageName2 = System.IO.Path.GetFileName(file2.FileName);
string physicalPath2 = Server.MapPath("~/images/" + ImageName2);
file2.SaveAs(physicalPath2);
mainInDb.smallImg = ImageName2;
}
db.SaveChanges();
return RedirectToAction("Index");
}
return View(mainSections);
}
Edit.cshtml
@using (Html.BeginForm("Edit", "MainSections", FormMethod.Post,
new { enctype = "multipart/form-data" }))
<input type="file" name="file" id="file" />
<input type="file" name="file2" id="file2" />
答案 0 :(得分:0)
首先,Peter B似乎是正确的,第二个应该是if(file2!= null)。
其次,因为我看到每个文件都包含一个图像,并且每个文件都有一个唯一的ID,所以你可以使用文件ID访问Needed文件中的Needed图像,然后你可以改变你想要的任何内容,它只会影响一个图像。 (例如:在您的视图中添加一个可以进行所需更改的Javascript函数...选中此项:https://stackoverflow.com/a/1297456/6653133)