javascript - 在编辑中上传图像不保存 C# MVC
问题描述
我有一个图像上传,在创建中可以正常工作,但在编辑模式下无法正常工作。我不确定我是否遗漏了某些东西,或者编辑只是以不同的方式处理它,所以代码需要不同。
在我们使用的 MVC 中,@Html.EditorFor
但在这种情况下,我不确定如何执行此操作,因此我复制了 create 语句中的内容,但它似乎不起作用。
我的 CHTML 页面有这个:
<div class="form-group">
@Html.LabelFor(model => model.PartImage, htmlAttributes: new { @class = "control-label" })
<input type="file" name="ImageUpload" onchange="ShowPreview(this)" id="ImageUpload" />
<img src="~/Content/Images/Parts/@Model.PartImage" alt="preview" style="width:100px;background-color:#d3d3d3;" id="imgbrowers" />
@Html.ValidationMessageFor(model => model.PartImage, "", new { @class = "text-danger" })
</div>
和 Javascript:
<script type="text/javascript">
$(document).ready(function () {
$("#imgbrowers").hide();
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#imgbrowers').attr('src', e.target.result);
$("#imgbrowers").show();
}
reader.readAsDataURL(input.files[0]);
}
}
$('#ImageUpload').change(function (e) {
readURL(this);
});
});
然后在我在控制器的帖子中我有这个:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Parts parts)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var user = User.Identity.Name;
try
{
if (ModelState.IsValid)
{
Parts partFromDB = db.Parts.Single(x => x.Material == parts.Material);
partFromDB.DrawingNumber = parts.DrawingNumber;
partFromDB.Description = parts.Description;
partFromDB.ExtDescription = parts.ExtDescription;
partFromDB.PartImage = parts.PartImage;
partFromDB.Status = parts.Status;
partFromDB.UpdatedDate = System.DateTime.Now;
partFromDB.UpdatedBy = User.Identity.Name;
db.SaveChanges();
sb.Append("Sumitted");
return Content(sb.ToString());
}
else
{
foreach (var key in this.ViewData.ModelState.Keys)
{
foreach (var err in this.ViewData.ModelState[key].Errors)
{
sb.Append(err.ErrorMessage + "<br/>");
}
}
}
}
catch (Exception ex)
{
sb.Append("Error :" + ex.Message);
}
return Content(sb.ToString());
}
它不会出错,只是没有从表单中获取 PartImage。我尝试添加value="ImageUpload"
到输入中,但这没有帮助。
解决方案
推荐阅读
- ruby-on-rails - collection_select 中的选项在提交时创建一个新选项 - Rails 5
- asp.net-core - Razor 页面中基于 URL 参数的路由
- sql - 有没有办法在 Redshift 上返回用户定义的函数内容(查询)?
- ios - 页面控制在完全进入下一页之前切换页面
- excel - Vlookup,仅返回第二个实例
- python - 使用 or 条件时如何使用 pyspark
- python - 如何通过相同的配置 yaml 在循环内检索配置变量?
- oracle - 具有最佳执行计划的高 IO%
- c# - 使用结构的 ECS 中的组件实现
- python-3.x - 使用递归查找 Python 列表中的最大数