HTTPPostedFileBase始终在控制器中返回null

时间:2015-08-26 05:56:55

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 httppostedfilebase

我已经检查了各种答案,但它们都不适合我,我的.cshtml代码如下:

<input type="file" name="PostedNRLFile" />

然后在控制器中我有

 public JsonResult SaveRecord(NewAuditLetterViewModel viewModel, FormCollection all, string hvalue, HttpPostedFileBase PostedNRLFile)

哪个总是空的,请帮帮我。

我已经尝试了一些在viewmodel中创建属性的东西,这也是null。 在我的beginform标记中也使用了new { enctype = "multipart/form-data", id = "documentForm" }。 还检查了它们只是源中的一个标记。

3 个答案:

答案 0 :(得分:4)

您必须在表单标记中添加enctype = "multipart/form-data"

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, 
                               new { enctype = "multipart/form-data" }))

在控制器操作中试用这个c#代码

if (Request.Files != null && Request.Files.Count > 0)
{
    HttpPostedFileBase file = Request.Files[0];
    if (file != null && file.ContentLength > 0)
    {
    }
}

您必须检索文件。

答案 1 :(得分:0)

试试这个:

touchesEnded

答案 2 :(得分:0)

如果您想使用MVC上传您需要的文件: - 创建表单并设置标签: enctype =“multipart / form-data” - 使用在控制器中命名相同的HttpPostedFileBase

创建输入