Javascript 在编辑中上载图像不保存C#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

我有一个图像上传,在创建模式下工作正常,但在编辑模式下不工作。我不确定我是否遗漏了什么,或者编辑只是以不同的方式处理它,所以代码需要不同

在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>

@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的数据类型是什么?