Javascript 在编辑中上载图像不保存C#MVC
我有一个图像上传,在创建模式下工作正常,但在编辑模式下不工作。我不确定我是否遗漏了什么,或者编辑只是以不同的方式处理它,所以代码需要不同 在MVC中,我们使用Javascript 在编辑中上载图像不保存C#MVC,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我有一个图像上传,在创建模式下工作正常,但在编辑模式下不工作。我不确定我是否遗漏了什么,或者编辑只是以不同的方式处理它,所以代码需要不同 在MVC中,我们使用@Html.EditorFor,但在本例中,我不确定如何做到这一点,因此我复制了create语句中的内容,但它似乎不起作用 我的CHTML页面有以下内容: <div class="form-group"> @Html.LabelFor(model => model.PartImage, htm
@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>
@LabelFor(model=>model.PartImage,htmlAttributes:new{@class=“control label”})
@Html.ValidationMessageFor(model=>model.PartImage,“,new{@class=“text danger”})
和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);
});
});
$(文档).ready(函数(){
$(“#imgbrowers”).hide();
函数readURL(输入){
if(input.files&&input.files[0]){
var reader=new FileReader();
reader.onload=函数(e){
$('imgbrowers').attr('src',e.target.result);
$(“#imgbrowers”).show();
}
reader.readAsDataURL(input.files[0]);
}
}
$('#ImageUpload')。更改(函数(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());
}
[HttpPost]
[ValidateAntiForgeryToken]
公共行动结果编辑(部分)
{
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
var user=user.Identity.Name;
尝试
{
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.UpdateDate=System.DateTime.Now;
partFromDB.UpdatedBy=User.Identity.Name;
db.SaveChanges();
(b)附加(Sumitted);
返回内容(sb.ToString());
}
其他的
{
foreach(此.ViewData.ModelState.Keys中的var键)
{
foreach(此.ViewData.ModelState[key]中的var err.错误)
{
sb.追加(err.ErrorMessage+“
”);
}
}
}
}
捕获(例外情况除外)
{
sb.追加(“错误:+ex.Message”);
}
返回内容(sb.ToString());
}
它没有出错,只是没有从表单中获取PartImage。我尝试将
value=“ImageUpload”
添加到输入中,但没有任何帮助。
不会随表单一起发布。您应该正在查找ImageUpload。partFromDB.PartImage的数据类型是什么?