根据asp.net Core中的ID数组更新Sql中重新排序的表

问题描述

我刚刚开始在 Asp.net 核心中编码我是它的新手,我已经搜索并寻找了三天,没有希望。 我遇到了这个问题,我不知道我做错了什么, 我的 itemIds 数组正在返回我想要的 ID itemIds 我有我的 id 数组,比如说 (2,3,1) 我正在尝试将排序顺序推送到 asp.net MVC 中的 sql 表,一切看起来都很好,但我的表没有更新。 实际上我想要做的是插入一个序列号作为 1-2-3-4 等...在排序顺序中,因为我正在更改 HTML 表中的排序顺序。 我相信我没有正确执行控制器中的代码,非常感谢帮助。

这是我的代码

public ImagesController(ApplicationDbContext context)
{
    _context = context;
}


[HttpPost]
public async Task<IActionResult> updateItemsAsync(string itemIds,int? id)
{
    int serial = 1;
    foreach(var item in itemIds)
    {
        var myitem = await _context.Images.FindAsync(id);
        myitem.sortOrder = serial;
        _context.Images.Update(myitem);
        _context.SaveChanges();
        seriaL++;
    }
    
    return View();
}

我的 javascript 看起来不错,并将我的 id 返回到 itemIds 数组并将其传递给我的操作。

<script>
    $(document).ready(() => {
        $("#sortable").sortable({
            update: function (event,ui) {
                var itemIds = "";
                $("#sortable").find(".taskSingleInline").each(function () {
                    var itemId = $(this).attr("data-taskid");
                    itemIds = itemIds + itemId + ",";
                });
                $.ajax({
                    //url: "/Views/Sortimages/UpdateItem",url: '@Url.Action("updateItems","MachineImages")',data: { itemIds: itemIds },type: 'POST',success: function (data) {
                        console.log('done')
                    },error: function (xhr,status,error) {
                    }
                });
            },stop: function (event,ui) {
                $(this).find('tr').each(function (i) {
                    $(this).find('td:last').text(i + 1);
                });
            }
        });
    });
</script>

这是我的表格代码

<table class="table">
    <thead>
        <tr>
            <th>
                itemId
            </th>
            <th>
                @Html.displayNameFor(model => model.ImageName)
            </th>
            <th>
                @Html.displayNameFor(model => model.sortOrder)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody id="sortable" style="cursor:pointer">
        @foreach (var item in Model)
        {

            <tr>
                <td class="taskSingleInline" id="task@(item.ID)" data-taskid="@(item.ID)">
                    @Html.displayFor(modelItem => item.ID)
                </td>
                <td>
                    @Html.displayFor(modelItem => item.ImageName)

                </td>
                    @Html.displayFor(modelItem => item.sortOrder)
                </td>
            </tr>
        }
    </tbody>
</table>

这是我的模型

public class Images
{

    [Key]
    public int id { get; set; }
    public string ImageName { get; set; }
    public int? sortOrder { get; set; }

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)