gpt4 book ai didi

c# - 将大 List 从 View 传递到 Controller 的最佳方法

转载 作者:行者123 更新时间:2023-12-02 01:23:47 25 4
gpt4 key购买 nike

我正在开发一个具有列表的 View (选定的 bool 值/ID字符串/名称字符串/值小数)。

在此 View 中,用户将选择一些项目并提交表单以将它们保存在数据库中。但这个 List/有大约 2000 个项目,而且速度非常慢。

我的 Controller :

public ActionResult Create(List<MyClass> list) {
foreach (var item in list) {
if (item.Checked) {
// something
}
}
}

我的观点:

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

@* TH /HTML *@

@for (int r = 0; r < Model.Count(); r++)
{
<tr class="tr-clickable">
@Html.HiddenFor(i => i[r].ID_User)
<td>@Html.CheckBoxFor(i => i[r].Checked)</td>
<td>@Html.DisplayFor(i => i[r].Anything1)</td>
<td>@Html.DisplayFor(i => i[r].Anything2)</td>
<td>@Html.DisplayFor(i => i[r].Value)</td>
</tr>
}

@* HTML *@

<div class="control-group margin-top-20 pull-right">
<div class="controls">
<input type="submit" class="btn btn-default" value="Send Form" />
</div>
</div>
}

是否有更好的方法在我的 Controller 中接收此列表?我一直在考虑通过 jQuery-ajax 发送列表并将它们一一保存。

大家对此有何看法?

最佳答案

我认为,您的问题不在于“传递列表”,而在于“逐一保存选定的列表项”。从 View 发送 2k 列表到 Controller 并不那么繁重(嗯,确实如此,但它仍然应该工作得不会太慢)。但是,如果您对 N 个选定的项目执行 N 个数据库操作,这就是您的瓶颈所在。

您有 2 个选择:

  1. 用户选择后立即保存所选项目。
  2. 至少使用单个事务来保存项目,从而优化您的数据库操作。

关于c# - 将大 List<T> 从 View 传递到 Controller 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com