У меня есть простой метод контроллера, как это:
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Add(InputModel input, OtherInputModel[] input2)
{
(...)
}
Который получает данные из этой формы ниже, но проблема в том, что когда эта простая конечная точка
получает OtherInputModel[]
, затем он зависает после нажатия кнопки «Отправить»
Там нет ошибки или что-то вообще - он просто застрял, пытаясь ввести этот метод контроллера, даже если я не прикрепляю изображения.
Изменение OtherInputModel[]
на string[]
«решает» его, поэтому по-прежнему можно получить доступ к этому методу, но я хочу отправить сложную модель []
<form asp-action="Add" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label">Title</label>
<input name="input.Title" class="form-control" value="@Model.Title" />
<span class="text-danger"></span>
</div>
<div class="form-group">
<label class="control-label">Body</label>
<input name="input.Body" class="form-control" value="@Model.Body" />
<span class="text-danger"></span>
</div>
<div class="form-group">
<div class="col-md-10">
<p>Upload one image ("jpg", "jpeg", "png", "bmp") using this form:</p>
<input type="file" name="input.Image" />
</div>
</div>
// here's probably the problem
@for (int i = 0; i < 4; i++)
{
<div class="form-group">
<label class="control-label"></label>
<input name="input2[].Text" class="form-control" />
<span class="text-danger"></span>
</div>
<div class="form-group">
<div class="col-md-10">
<p>Upload one image ("jpg", "jpeg", "png", "bmp") using this form:</p>
<input type="file" name="input2[].Image" />
</div>
</div>
}
<div class="form-group">
<input type="submit" value="Create" class="button" />
</div>
</form>
Вот мои модели:
public class InputModel
{
public string Title { get; set; }
public string Body { get; set; }
public IFormFile Image { get; set; }
}
public class OtherInputModel
{
public string Text { get; set; }
public IFormFile Image { get; set; }
}
Я также пытался использовать индексы в своей форме, как это
<input name="input2[@i].Text" class="form-control" />