【发布时间】:2020-06-22 21:14:16
【问题描述】:
在 ASP.NET Core 中,我四处搜索,但无法弄清楚如何将列表从视图传递到控制器。我可以创建一个 form 并传递一个 int 值,但不能创建一个 List<int>。这是我必须传递一个值
<form id="myForm">
<div class="modal-body">
<div class="form-group">
<label class="custom-label">
<div class="col-sm-3">
<input name="singleValue" type="text" class="form-control" />
</div>
</div>
<a href="#" class="btn btn-success" onclick="SaveForm('UpdateFunction', 'ControllerName')">Update</a>
</form>
我的控制器是
public IActionResult UpdateFunction(int singleValue)
{
var model = _context.TableName.SingleOrDefault(f => f.Id == singleValue);
model.Name = "Whatever";
_context.Update(model);
_context.SaveChanges();
return Json(true);
}
但是因为我想一次更新多个值而不是只更新int singleValue,所以我尝试通过
public IActionResult UpdateFunction(int[] list) 或
public IActionResult UpdateFunction(List<int> list)
进入函数参数。我尝试在文本框中输入多个 int 值,带/不带逗号、方括号,没有任何效果,列表始终为空。我的目标是将列表或数组传递给控制器,然后遍历列表中的值。我的问题是如何将List<int> 传递给控制器?
【问题讨论】:
-
如何在表单中获取多个值?单个字段或多个字段。
-
据我所知你不能这样做。我可以提供的唯一解决方案是您可以创建一个输入,用户可以在其中输入数字,例如:“1 2 5 6 7 8”,并且在您的控制器中您可以接受一个字符串,您可以将其转换为列表
-
@TheVillageIdiot 我会尝试在表单中添加类似 [1,2,3,4] 或 1,2,34,甚至 1 2 3 4 的内容,只是为了尝试不同的东西
-
好的,我在回答中为您列出了几个选项,