我已经将enctype设置为:multipart/form-data然而,无论何时我提交此表单,Request.ContentType是:application/x-www-form-urlencoded和内容的上传无法从Request.Files中检索。无法上传文件与ASP.NET MVC2
这是我的观点:
<% using (Html.BeginForm("Import", "Content", FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
<p>
<%= Html.CheckBox("DeleteExisting")%> Delete Existing Records?
</p>
<p>
<input type="file" name="FileUpload" id="FileUpload" /> Select a dump file.
</p>
<p>
<input type="submit" value="Import Now" />
</p>
<% } %>
这里是我的操作:
[HttpPost]
public ActionResult Import(FormCollection fc)
{
string chkDelete = fc["DeleteExisting"];
//string filename = fc["FileUpload"];
if (!chkDelete.Equals("false"))
{
//TODO: delete existing records, if specified
}
var inputFile = Request.Files["FileUpload"];
return View();
}
在回传时,“FC”可变填充,我可以访问该复选框的值,可以得到上传的文件名。
为什么我的enctype会被忽略?
我试过手动将窗体标签放在视图中,属性位于不同位置,但这并没有什么区别。
我唯一能想到的就是这个Import表单嵌套在MasterPage的表单中,但这看起来不像是一个问题。另外我有这个表格正确包含。
有什么建议吗?
你不应该需要额外的参数。 – 2010-06-24 19:09:23
@jacerhea嗯,这可能是从我最初在v1中创建它的时候挂起来的,并且使用没有任何位置放置上传文件的ViewModel,以及所有在线参考文献指出我无法获得上传的文件出来FormCollection ... – 2010-06-24 19:19:15
感谢您的快速回复本,但HttpPostedFileBase参数没有帮助。回邮后为空。 – 2010-06-24 19:21:48