Страница имеет 2 формы для загрузки файлов. При использовании второй формы загрузки работает первая форма загрузки - PullRequest
0 голосов
/ 17 июня 2020

У меня есть проект .NetFramework MVC. Первая форма FileUpload, расположенная в _Layout как PartialView

<div class="form-inline form-inline-left">
   @Html.Partial("SetDictionary")
</div>

SetDictionary Код PartialView:

@{
    string FileName = Session["DictName"]?.ToString();
}
<div class="input-group" style="margin:0px 0px 0px 0px; display: inline-block;">

    @if (FileName != null)
    {
        using (Html.BeginForm("ClearDictionary", "Dictionary", FormMethod.Post, new { enctype = "multipart/form-data", style = "display: inline-block;" }))
        {
            <div class="input-group-prepend">
                @Html.Hidden("returnUrl", this.Request.RawUrl)
                <input type="submit" class="btn btn-outline-danger" value="Деперсонализация" />
            </div>
        }
    }
    else
    {
        using (Html.BeginForm("Upload", "Dictionary", FormMethod.Post, new { enctype = "multipart/form-data", style = "display: inline-block;" }))
        {
            <input type="submit" class="btn btn-outline-primary" id="uploadClicker" value="Загрузить" hidden />

            <div class="custom-file">
                <input type="file" class="custom-file-input" id="upload" name="upload" hidden>
                <label class="btn btn-outline-primary" data-browse="Загрузить" for="upload">Персонализация</label>
            </div>
            @Html.Hidden("returnUrl", this.Request.RawUrl)
        }
    }

</div>

<script>
    document.querySelector('.custom-file-input').addEventListener('change', function (e) {
        var fileName = document.getElementById("upload").files[0].name;
        var nextSibling = e.target.nextElementSibling
        nextSibling.innerText = fileName
    })

    $('#upload').change(function () {
        $('#uploadClicker').trigger('click');
    });

</script>

И у меня есть простой вид с другой формой FileUpload

<div class="custom-file">
   @using (Html.BeginForm("Upload", "Testables", FormMethod.Post, new { enctype = "multipart/form-data" }))
   {
      <input type="file" class="custom-file-input" id="upload" name="upload" aria-describedby="upload">
      <label class="custom-file-label" data-browse="Загрузить" for="upload">Загрузите файл</label>
      <input type="submit" id="smbUpliadTestables" hidden />
   }
</div>

<input type="button" value="Добавить новые записи в базу данных" class="btn btn-success" onclick="$('#smbUpliadTestables').on('click')" style="height: 44px;" />

При использовании Вторая форма загрузки для TestableController, рабочая первая форма загрузки для DictionaryController. Первая форма загрузки для нормальной работы DictionaryController.

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