C# AspNet MVC-return RedirectToAction不适用于图像上载(如果调用file.SaveAs)

C# AspNet MVC-return RedirectToAction不适用于图像上载(如果调用file.SaveAs),c#,asp.net,asp.net-mvc,controller,C#,Asp.net,Asp.net Mvc,Controller,如果imageUpload.SaveAs(路径)return RedirectToAction不起作用执行,否则它不起作用(我的意思是,如果我不选择任何图像,它将不会到达行imageUpload.SaveAs(path);) 这是我的密码: [HttpPost] public ActionResult CreateNewEmployee(Employee emplView, HttpPostedFileBase imageUpload) { if (!ModelS

如果
imageUpload.SaveAs(路径)
return RedirectToAction
不起作用执行,否则它不起作用(我的意思是,如果我不选择任何图像,它将不会到达行
imageUpload.SaveAs(path);

这是我的密码:

[HttpPost]
    public ActionResult CreateNewEmployee(Employee emplView, HttpPostedFileBase imageUpload)
    {
        if (!ModelState.IsValid)
        {
            var mod = new PersonalDetailsViewModel(emplView);
            return View("AddEmployee", mod);
        }
        if (imageUpload != null && imageUpload.ContentLength > 0)
        {
            var fileName = emplView.EmployeeId + "_" + Path.GetFileName(imageUpload.FileName);
            var path = Path.Combine(Server.MapPath("~/Content/Images/"), fileName);

            imageUpload.SaveAs(path);
            emplView.Photograph = fileName;
        }
        _dbContext.Employees.Add(emplView);
        _dbContext.SaveChanges();

        return RedirectToAction("PersonalDetails", new { id = emplView.EmployeeId });
    }
我用调试器检查过,它正在到达最后一行并执行,但没有重定向到action方法。我不知道我哪里做错了

我在下面的
Global.asax
方法中检查了隐藏的错误,但没有任何错误:

protected void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Server.GetLastError();
    }
或许可以移动您的: imageUpload.SaveAs(路径);
一个异步方法,允许在不等待图像上传过程完成的情况下执行其余代码。我怀疑您在试图从控制器发出响应时,图像上载请求被串通。

异常可能发生在ASP.NET管道之外,因此无法保证应用程序错误会捕获它。尝试将保存图像代码包装在Try/catch和/或将ELMAH添加到项目中。现在发生了什么?你到底得到了什么结果?是否存在异常?在RedirectToAction之后-您是否能够调试“PersonalDetails”方法或它只是终止?根本不可能,catch中没有任何异常,并且仍然成功执行,但没有重定向…@Rex No无法调试“PersonalDetails”,它没有到达那里。我对此表示怀疑,但是你能修饰一下具体的场景(代码)来获得它吗。你可以在我给定的代码上进行修饰。即使我也不认为这是原因,因为这对我来说很有效。@wkhaksar如果保存员工信息有效,但图像上传没有保存,而你在浪费时间,我会创建两个函数,让它们各自做一件事(单一责任)
-first Save()新员工
下一步允许用户上传图像(如果你喜欢,甚至可以使用带有异步方法的Ajax)
然后将其发送到个人详细信息(虽然这是我允许他们上传图像的地方,但在这里似乎更合适。)
我的工作示例代码是从您的代码中提取的,不包括_dbContext操作,只包括“imageUpload”参数+相关代码(保存图像并重新引导操作)。