【发布时间】:2012-11-08 15:33:14
【问题描述】:
嗯,这很奇怪。 我正在做我在网上大量找到的所有事情,但仍然无法正常工作。 我想上传一个文件,所以在我放的视图中:
@using (Html.BeginForm("Import", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="uploadFile" />
<input type="submit" value="Importa" />
}
这是主页/导入:
[AcceptVerbs(HttpVerbs.Post)] // or [HttpPost], nothing changes
public ActionResult Import(HttpPostedFileBase uploadFile)
{
Debug.WriteLine("Inside Import");
if (uploadFile == null)
Debug.WriteLine("null");
// Verify that the user selected a file
if (uploadFile != null && uploadFile.ContentLength > 0)
{
Debug.WriteLine("Valid File");
...
}
}
它总是打印 Inside Import + null。所以我确定我调用了正确的控制器动作,但它总是收到一个空的 HttpPostedFileBase。
是否有人对此提出建议或已经发现(并解决了)此类问题? 谢谢!
【问题讨论】:
-
您是否尝试过仅使用 HTML 表单标签而不是 Razor 助手?
-
我做了数十亿的事情试图弄明白,所以我记不太清楚了……但我想我试过了!而且没有结果。不过,我会再试一次。所以,请继续关注,你会收到我的消息,谢谢!
-
好的,使用 HTML 表单标签也不起作用。所以我想我以前也试过这个;)真的不明白为什么它对我不起作用,而其他人都这样做。
-
您是否使用过网络调试工具(FireBug/Chrome Developer/Fiddler)来检查发布数据的内容?您应该能够看到名称为“uploadFile”的请求负载
-
ps 我测试了你的代码,它在 Chrome 中发布了数据,uploadFile 不为空
标签: asp.net-mvc jquery-mobile razor httppostedfilebase enctype