问题描述
我刚刚开始在 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 (将#修改为@)