У меня есть проект .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.