jquery сортируется в asp.net MVC - PullRequest
       8

jquery сортируется в asp.net MVC

0 голосов
/ 06 ноября 2018

Я пытаюсь отправить идентификатор задачи с помощью ajax всякий раз, когда пользователь сортирует строки таблицы в соответствии со своими предпочтениями. но не похоже, что данные, захваченные в ajax, отправляются на контроллер. Я отладил код, и данные были собраны в jQuery, но ajax не отправляет его. в чем может быть проблема? вот мой код индекс моей задачи

<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
  @section scripts {
<script type="text/javascript">
 $("#sortable").sortable({
            update: function (event, ui) {
                var itemIds = ""; 
  $("#sortable").find(".taskSingleInline").each(function () 
     {
                     var itemId = $(this).attr("data-taskid");
                     itemIds = itemIds + itemId + ",";
                 });
            $.ajax({
                url: '@Url.Action("UpdateItem", "TaskBoard")',
                data: { itemIds: itemIds },
                type: 'POST',
                success: function (data) {

                },
                error: function (xhr, status, error) {

                }
            });
        }
    });
</script>
}
 <style>
     #sortable tr:hover {
         background-color: cadetblue;
         color: beige;
     }
 </style>


 @using (Html.BeginForm("Index", "TaskBoard", FormMethod.Post))
 {
     <div class="container">
    <div class="col-md-6">
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Position</th>
                </tr>
            </thead>
            <tbody id="sortable" style="cursor:pointer;">
                @foreach (var i in Model)
                {
                    <tr>
                        <td>@i.Id</td>
                        <td class="taskSingleInline" id="task@(i.Id)" data-taskid="@(i.Id)">@i.Name</td>
                        <td>@i.RowNo</td>
                    </tr>
                }
            </tbody>
        </table>

        <button type="submit"> submit</button>
    </div>
</div>
}

и вот мой контроллер

    public ActionResult UpdateItem(string itemIds)
    {
        int count = 1;         
        List<int> itemIdList = new List<int>();
        itemIdList = itemIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
        foreach( var i in itemIdList)
        {
            try
            {
                First f = TE.Firsts.Where(x => x.Id == i).FirstOrDefault();                  
                f.RowNo = count;
                TE.Firsts.AddOrUpdate(f);
                TE.SaveChanges();
            } catch(Exception)
            {
                continue;
            }
            count++;

        }
        return Json(true, JsonRequestBehavior.AllowGet);
    }

где TF - мой контекст БД мои модели "первые" введите описание изображения здесь

и я отрисовал там в моей общей _layout

 @Styles.Render("~/Content/css")
 @Scripts.Render("~/bundles/modernizr")
 @Scripts.Render("~/bundles/jquery")

1 Ответ

0 голосов
/ 08 ноября 2018

Оказывается, проблема была с моей первой таблицей. я удалил блок try-catch, чтобы увидеть исключение, и, очевидно, все поля в моей первой таблице были заданы как первичные ключи? я не помню, как это делал, я понятия не имею, как это произошло, поэтому я удалил идентификационные данные из всех полей, кроме идентификатора, и это работало просто отлично, я надеюсь, что это было как-то полезно.

...