【发布时间】:2020-12-12 19:18:10
【问题描述】:
更具体地说,让我解释一下我遇到了什么。 我试图将数据列表从视图提交到控制器。我能够成功提交一些数据而没有任何问题。但是,当数据超过 250 项或更多的列表时,问题就出现了。当我单击提交按钮时,它会在调试时传递一个 NULL 值。我的代码没有错误,因为我已经毫无问题地向控制器提交了 100 个项目的列表。我想我必须指定一些东西,以便它也会发送大量列表。 在这里,我没有使用 ajax 或任何 javascript 代码来提交表单。我正在使用 post 请求将其直接提交给控制器。
我在下面发布了一些我的代码的 sn-p 以更准确地描述它。
查看
<form method="post" action="SubmitList">
<div class="row">
<div class="col-md-12" style="padding-top:1%">
<input type="submit" value="PASS" class="btn btn-primary" style="float:right;" />
<div class="box-body">
<table id="#example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>No</th>
<th>Name</th>
</tr>
</thead>
<tbody>
@{
int i = 1;
}
@for (int j = 0; j < Model.Count(); j++)
{
<tr>
<td>@Html.Raw(i++)</td>
@Html.HiddenFor(item => item[j].Id, new { htmlAttributes = new { @class = "form-control" } })
<td>
@Html.DisplayFor(item => item[j].FullName)
</td>
</tr>
}
</tbody>
<tfoot>
</tfoot>
</table>
</div>
</div>
</div>
</form>
控制器
[AuthorizedAction]
[HttpPost]
public async Task<IActionResult> SubmitList(List<Student> students)
{
////
}
你能告诉我我的代码有什么问题吗
【问题讨论】:
-
你能检查一下 Modelstate,因为它可以告诉你绑定出了什么问题
-
检查最大内容长度设置stackoverflow.com/questions/3853767/…
-
我认为如果开始使用分页会更好。您只会发送您的页面可以处理的行数。
-
不确定 .NET Core 的等效项是什么,但 ASP.NET(在 IIS 上)一直有最大请求大小限制和“最大字段”限制(不记得实际上是什么调用,但它处理给定请求中有多少表单值)。您是否只发送行 ID(这是您示例中唯一的隐藏字段)?
-
假设您在 IIS 上运行,您可能会达到此处描述的限制:stackoverflow.com/questions/8684049/… - IIS 每个请求默认最多 500 个表单字段,您的 250 行将提交 750 个。
标签: c# asp.net asp.net-mvc forms asp.net-core