【发布时间】:2021-01-30 21:34:48
【问题描述】:
在控制器中将数据传递给操作时遇到问题
public class LeadFile : BaseEntity
{
public int LeadId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string FileType { get; set; }
public byte[] DataFiles { get; set; } ***********
public Lead Lead { get; set; }
}
我的视图模型
public class LeadFileViewModel
{
public int Id { get; set; }
public string Description { get; set; }
public string Name { get; set; }
public string FileType { get; set; }
public IFormFile DataFiles { get; set; } ***********
}
我使用这个扩展从 IFileForm 转换为 byte[]
public static class FormFileExtensions
{
public static byte[] GetBytes(this IFormFile formFile)
{
using (var memoryStream = new MemoryStream())
{
formFile.CopyToAsync(memoryStream);
return memoryStream.ToArray();
}
}
}
这是我的观点
@using (Html.BeginForm("AddFileTempItem", "Leads", FormMethod.Post, new
{
id = "AddLeadFileForm",
@enctype = "multipart/form-data",
@data_ajax = "true",
@data_ajax_method = "post",
@data_ajax_update = "#FileInformatiomList",
@data_ajax_failure = "onFailureDefault",
@data_ajax_complete = "AddFileTempItemOnComplete"
}))
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label asp-for="DataFiles" class="control-label"></label>
<input asp-for="DataFiles" type="file" class="form-control" /> ***********
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label asp-for="Description" class="control-label"></label>
<input asp-for="Description" class="form-control" />
</div>
</div>
</div>
<div class="modal-footer">
<input type="submit" value="Add File" class="btn btn-primary" />
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
还有这个控制器动作
[HttpPost]
public ActionResult AddFileTempItem(LeadFileViewModel model)
{
List<LeadFileViewModel> models = LeadFileViewModelsList;
models.Add(new LeadFileViewModel
{
Id = models.Count + 1,
Name = model.Name,
DataFiles = model.DataFiles,
Description = model.Description,
FileType = model.FileType,
});
LeadFileViewModelsList = models;
return PartialView("_LeadFilesGridPartial", LeadFileViewModelsList);
}
我的问题是,当我单击添加按钮时,每次 null 时都没有数据传递给 viewModel 中的 DataFiles 属性。 任何人都可以帮助我解决这个问题。
谢谢
【问题讨论】:
-
当我使用普通表单标签
标签: .net asp.net-core