Я пытаюсь создать страницу, которая позволяет пользователям динамически добавлять документы в модель. Я делаю это с частичным представлением, которое вызывается через ajax, а затем отображается на странице:
<h4>Property</h4>
<hr />
<div class="row">
<div class="col-md-8">
<form asp-action="CreateProperty" enctype="multipart/form-data" id="propertyCreateForm" method="post", name="propertyDocument">
<div class="form-group" id="propertyDocumentsContainer">
@Html.EditorFor(item => item.Documents)
</div>
<div class="row">
<input type="button" class="btn btn-secondary" id="btnAdd" value="Add Document">
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script type="text/javascript">
$('#btnAdd').on('click', function () {
var form = $('#propertyCreateForm')[0];
var formData = new FormData(form);
$.ajax({
async: true,
data: formData,
processData: false,
contentType: false,
type: "POST",
url: "/Property/AddPropertyDocument",
success: function(partialView){
console.log("Partial View: " + partialView),
$('#propertyDocumentsContainer').html(partialView)
}, error: function(err){
console.error(err.error);
}
});
});
</script>
}
Частичное представление выглядит следующим образом:
<div class="row">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Document"></label>
<input asp-for="Document" class="form-control" type="file"/>
<span asp-validation-for="Document" class="text-danger"></span>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label asp-for="DocumentType"></label>
<select asp-for="DocumentType.Id" asp-items="@ViewBag.DocumentTypes" class="form-control"></select>
<span asp-validation-for="DocumentType" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label asp-for="ExpiryDate"></label>
<input asp-for="ExpiryDate" class="form-control" />
<span asp-validation-for="ExpiryDate" class="text-danger"></span>
</div>
</div>
</div>
</div>
Все работает, за исключением того, что он не покидает документ при возврате данных. Могу ли я установить вход в файл? Свойство Document в моем примере - это IFormFile