单击按钮获取上传的文件

时间:2012-12-04 09:38:44

标签: c# asp.net-mvc-3

尝试使用cshtml在MVC 3.0中上传Excel工作表。在我看来,我的页面中有两个按钮,每个按钮都有不同的动作结果。我已在页面中实现了两个按钮的处理。但是,当我点击上传按钮时,在给出Request.Files时没有文件。我应该在上传按钮的ActionResult中添加一个参数吗? 下面是我的代码

[HttpPost]
[MultiButton(MatchFormKey = "Upload", MatchFormValue = "Upload")]
public ActionResult UploadFile()
{
    TMReportViewModel UploadModel = new TMReportViewModel();
    foreach (string file in Request.Files) 
    {
        HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
        if (hpf.ContentLength == 0) 
            continue;

        string savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileName(hpf.FileName));

        hpf.SaveAs(savedFileName); 
     }
     return View(UploadModel);
 }

1 个答案:

答案 0 :(得分:0)

我目前正在使用MVC 4.0进行此操作。

解决方案是HTML格式:

你必须写

@using (Html.BeginForm("UploadImage", "Image", FormMethod.Post,
                        new { enctype = "multipart/form-data" }))

以便您的控制器知道您在Request.File中传递图像。

了解更多信息请查看: http://www.codeproject.com/Articles/442515/Uploading-and-returning-files-in-ASP-NET-MVC

对于MVC 3.0,请看: http://forums.asp.net/t/1673787.aspx