MVC上传文件BeginForm HTTPPOST

时间:2014-12-29 09:10:06

标签: c# asp.net-mvc razor file-io

我试图将CSV文件上传到我的控制器以获取数据。

这是我的MVC剃须刀视图:

@using (Html.BeginForm("AddManyDevices", "Home", FormMethod.Post, new {@enctype = "multipart/form-data" }))
{
     <input id="FileUpload" name="FileUpload" type="file" />
     <input id="subButton" type="submit" value="FileUpload" class="btn btn-success" title="Upload File" />
}

这是HomeController中的方法,一种返回视图的方法和一种处理HTTP POST的方法

[Authorize]
public ActionResult AddManyDevices()
{
   return View();
}

[HttpPost]
public void AddManyDevices(HttpPostedFileBase FileUpload)
{
   StreamReader csvreader = new StreamReader(FileUpload.InputStream);

   while (!csvreader.EndOfStream)
   {
       var line = csvreader.ReadLine();
       var values = line.Split(';');
   }
}

但是当我上传文件时,没有调用HTTP POST AddManyDevices,我做错了什么?

1 个答案:

答案 0 :(得分:1)

请从@enctype = "multipart/form-data"

中删除@符号

并使用如下

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