我在asp.net 4.72框架mvc应用程序中的.net标准项目中使用了viewmodel,并且该应用程序中具有文件上传功能。 IFormfile在控制器方法中始终为null。下面是我的模型,视图和控制器方法。
.Net核心中的模型
public class CustomerImportForm
{
public CustomerImportForm();
[Required]
public int CohortId { get; set; }
public ImporterType ImporterType { get; set; }
[Required]
public IFormFile ImportFile { get; set; }
}
在Asp.net 4.7中查看
@model CustomerImportForm
<div class="form-group">
@Html.LabelFor(m => m.ImportFile)
<div class="input-group">
<div class="custom-file">
<input type="file" class="custom-file-input"
id="@Html.IdFor(m => m.ImportFile)"
name="@Html.NameFor(m => m.ImportFile)"
accept=".xlsx,.csv"
required/>
<label class="custom-file-label" for="@Html.IdFor(m => m.ImportFile)">Choose file</label>
</div>
</div>
@Html.ValidationMessageFor(m => m.ImportFile, null, new {@class = "text-danger" })
</div>
控制器方法:
public async Task<ActionResult> ProcessUploadAndCreateCohorts(CustomerImportForm form)
{
Log.Info("Uploading import '{0}'", form.ImportFile.FileName);
return RedirectToAction("View", new { id = importId });
}
form.ImportFile始终为空。