【发布时间】:2016-05-25 16:53:02
【问题描述】:
我试图简单地允许用户上传文件。
我有一个简单的开始表单,其中包含如下所示的文件元素:
@using (Html.BeginForm("LoadData", "Input", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div style="width:23%; display:inline-block;">
<label>Select Type:</label>
<select name="UploadType">
<option value="First">First</option>
<option value="Second">Second</option>
</select>
</div>
<div style="width:43%; display:inline-block;">
<input type="file" name="files1" id="files1" />
</div>
<div style="width:33%; display:inline-block;">
<input type="submit" value="Upload"/>
</div>
}
控制器是:
[HttpPost]
public ActionResult LoadData(string UploadType, HttpPostedFileBase file1)
{
if(file1 != null && UploadType != null)
{
Console.WriteLine(file1.FileName);
Console.WriteLine(UploadType);
}
}
一切都在网站上显示和工作,但当它回发时,文件为空。我查看了许多谷歌搜索结果,包括:
Binding HttpPostedFileBase using Ajax.BeginForm
http://www.aurigma.com/upload-suite/developers/aspnet-mvc/how-to-upload-files-in-aspnet-mvc
等等。他们都说我的东西是正确的。只要文件输入和控制器参数上的名称匹配,它就可以工作。但事实并非如此。
我尝试将其命名为 file、files,现在又命名为 file1,但无论我怎么称呼它,它都会返回 null。
我做错了什么?我什至尝试检查 Request.Files 但它的计数为 0。
【问题讨论】:
-
我不明白这是如何被否决的。这个问题从来没有解决,只能解决。因此,没有理由的否决票是不必要的,尤其是当给出的唯一答案不起作用时。如果您有答案,我很乐意听到。
标签: html asp.net-mvc