Do tnet Core 3 MVC Можно ли установить вход в файл - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь создать страницу, которая позволяет пользователям динамически добавлять документы в модель. Я делаю это с частичным представлением, которое вызывается через 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

1 Ответ

0 голосов
/ 23 апреля 2020

В итоге я просто добавил новое поле, а не заменял все содержимое вызова ajax, тем самым устраняя необходимость передавать IFormFile в частичных представлениях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...