【发布时间】:2014-12-29 09:10:05
【问题描述】:
我正在尝试将 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,我做错了什么?
【问题讨论】:
-
@Lanorkin,这不一定是真的。
ActionInvoker将自动从void方法返回EmptyResult。 -
我现在不需要返回值,甚至没有调用该方法。从 void 更改为 ActionResult 并不能解决我的问题。
-
我在我的应用程序中尝试了您的代码,正在调用您的操作。
-
当您点击提交按钮时,您在浏览器网络面板(F12 工具)中看到了什么?哪个 URL,哪个 METHOD,哪个状态码,正文?
-
我认为,
enctype = "multipart/form-data"在这里是必不可少的
标签: c# asp.net-mvc razor file-io