文件上传在MVC 3中始终为空

Sha*_*han 6 c# asp.net-mvc asp.net-mvc-3

我想创建一个表单,用户可以在其中编辑个人资料并上传图像(如果需要),这是我的视图

//表单字符串 @using(Html.BeginForm("EditProfile","Employee",FormMethod.Post, new { enctype = "multipart/form-data " }))

//输入HTML <input type="file" name="file" id="file"/>

//提交<input type="submit" name="SubmitBtn" value="SaveProfile" /> <input type="submit" name="SubmitBtn" value="Cancel" />

现在我的控制器

    //Profile Modification
    [Authorize]
    [HttpPost]
    public ActionResult EditProfile(employer model, string SubmitBtn,HttpFileCollection file)
    {
        switch (SubmitBtn)
        {
            case "SaveProfile":
                try
                {
                    if (ModelState.IsValid)
                    {
                          //the file is always null
                        if (file != null)
                        {
                             //Function I want to Apply on file
                             model.logoname = logouploded(file);  
                            return RedirectToAction("Profile", "Employer");
                        }
                        return RedirectToAction("EditProfile");
                    }
                    //ChangeEmployeeProfile(model);

                }
                catch (Exception ex)
                {
                    ViewBag.warn = ex.Message;
                    return View(model);
                }
                break;
            case "Cancel":
                return RedirectToAction("index");
        }
        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

现在无论我上传的文件是什么文件总是空来的,我也尝试过HttpFileCollectionBase作为Action函数中的参数仍然是文件为null

只是提到员工模型只包含图像文件名,因为我只想在数据库中保存图像名称.

Pet*_*iss 10

将HttpFileCollection类型更改为HttpPostedFileBase.

  • 最后它的工作感谢帮助"multipart/form-data"中的空格是问题,参数改为HttpPostedFileBase,它的工作就像魅力再次感谢@peter Kiss (2认同)