![](/img/trans.png)
[英]C#, ASP.NET MVC: Multiple image upload and uploaded images all remain the same problem
[英]how to remain old image file in mvc c#
我是.net的新手,只需启动我的mvc c#。
我在这里有一个问题..我在插入徽标后尝试更新徽标。 如果我不选择图像文件,徽标位置(仅将位置部分存储在数据库中)为“ null”。
这是控制器:
public ActionResult Edit(payroll_Company payroll_company)
{
if (ModelState.IsValid)
{
HttpPostedFileBase txtUploadFile = Request.Files["txtUploadFile"];
if (txtUploadFile != null && txtUploadFile.ContentLength > 0)
{
string logo = txtUploadFile.FileName;
payroll_company.comp_logo = logo;
var path = Path.Combine(Server.MapPath("~/Logo/"), logo);
txtUploadFile.SaveAs(path);
}
else
{
//payroll_Company comp = db.payroll_Company.Find(payroll_company.comp_id);
//payroll_company.comp_logo = comp.comp_logo;
}
db.Entry(payroll_company).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(payroll_company);
}
在这里查看:
<div class="form-group">
<label class="control-label col-md-2">Logo</label>
<div class="col-md-10">
<input type="file" name="txtUploadFile" id="txtUploadFile" class="form-control">
</div>
</div>
如果我不选择图像文件并保留旧图像,该如何编辑公司信息? 希望有人可以帮助我解决这个问题。
提前致谢
var logoPath = Directory.GetFiles(Server.MapPath("~/Logo/")).OrderByDescending(f => File.GetCreationTime(f)).FirstOrDefault();
if (!string.IsNullOrWhiteSpace(logoPath))
{
payroll_company.comp_logo = Path.GetFileName(logoPath);
}
将代码添加到您的else
部分,因为您需要的是最后一个图像文件,这也意味着它比其他图像文件创建得更持久。否则,您需要先从db中读取它,是的,您已经这样做了。
回答后,看来您的payroll_company
只是一家财产!,为什么payroll_company
保存它? 您只需要跳过the save code
,并the return code
没有上传图片时留下the return code
您的异常表示您的对象已经被上下文绑定,因此您必须先将其分离,然后再附加
var _dc = (IObjectContextAdapter)db;
var _oc = _dc.ObjectContext;
var key;// = payroll_company.Key;
ObjectStateEntry ose;
if (_oc.ObjectStateManager.TryGetObjectStateEntry(key, out ose))
{
var _entity = (payroll_Company)ose.Entity;
db.Entry(_entity).State = EntityState.Detached;
}
db.payroll_Company.Attach(payroll_company);
db.Entry(payroll_company).State = EntityState.Modified;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.