【发布时间】:2019-03-09 08:11:58
【问题描述】:
我有这样的简单控制器方法:
[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" />
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc