我添加了一个输入文件字段,但它在控制器上始终为null。我错过了什么?
这是我的视图和控制器的代码。
视图:
...
@using (Html.BeginForm())
{
...
<input type=file name="file" id="file" class="post-attachment" />
...
}
控制器:
[HttpPost]
public ViewResult _Details(HttpPostedFileBase file, ViewTopic viewTopic, string SearchField, string submitBtn)
{
// save file to server
if (file != null && file.ContentLength > 0)
{
var fileName = DateTime.Today.ToString("yy.MM.dd") + Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Attachments"), fileName);
file.SaveAs(path);
}
...
}
答案 0 :(得分:4)
您需要明确设置表单的enctype
:
@using(Html.BeginForm("action", "controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
...
}
答案 1 :(得分:1)
您需要将表单更改为 -
@using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<p>
<input type="file" id="fileUpload" name="fileUpload"/>
</p>
<p>
<input type="submit" value="Upload file" /></p>
}
此问题中有更多信息(包括上面的示例) - Html helper for <input type="file" />