Удалить btn в MVC.net - PullRequest
       5

Удалить btn в MVC.net

0 голосов
/ 31 января 2019

Мне может понадобиться дополнительный набор глаз, но мой delete btn не работает, он возвращает сообщение, но после нажатия yes или ok он не удаляет данные, которые я хотел удалить, в основном ничего не происходит, я думаю, у меня проблемас инвентарем. Ид. часть.спасибо, и я знаю, что это не очень хороший вопрос для других пользователей, но я ценю помощь.

       <tbody>
                      @foreach (var inventory in Model)
        {
        <tr>
            <td>@Html.ActionLink(inventory.PartNumber, "Edit", "Inventory", new 
        { id = inventory.Id }, null)</td>
            <td>@inventory.PinNumber</td>
            <td>@inventory.PartQuantity </td>
            <td>@inventory.PartPrice </td>
            <td>@inventory.PartDescrption</td>
            <td> <button data-inventory-id="@inventory.Id" class="btn-link js-delete">Delete</button> </td>


        </tr>
        }

    </tbody>
</table>

@section scripts
{
    <script>
        $(document).ready(function ()
        {
            $("#inventories").DataTable();
            $("#inventories .js-delete").on("click", function () {
                var button = $(this);
                if (confirm("Are you sure you want to delete this Part Number?")) {
                    $.ajax({
                        url: "/inventory/" + button.attr("data-inventory-id"),
                        method: "DELETE",
                        success: function () {
                            button.parents("tr").remove();
                        }
                    });
                }
            });

        });
    </script>
}

это мой контроллер для действия удаления:

 [HttpDelete]
        public void  DeleteInventory(int id)
        {
            var inventoryInDb = _context.Inventory.SingleOrDefault(c => c.Id == id);



            _context.Inventory.Remove(inventoryInDb);
            _context.SaveChanges();


        }

У меня нет API в Учебном пособии, за которым я следую. У него есть API, но я не создалодин.Я пытаюсь обойти это.Спасибо.

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Скорее всего, вы не создали метод DELETE в своем внутреннем API.Чтобы узнать наверняка, откройте инструменты разработчика Chrome (убедитесь, что вы находитесь на вкладке консоли), а затем нажмите свою кнопку.Вы увидите сообщение об ошибке «Метод УДАЛИТЬ не найден» или что-то подобное.

Если указано «Метод не разрешен», то это связано с разрешениями (пользователь, нажимающий кнопку, не имеетразрешение на доступ к этому API).

0 голосов
/ 08 мая 2019
In controller:
public ActionResult Delete(int? id)
                {
                    if (id == null)
                    {
                        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                    }
                    Inventory inventory = _context.Inventory.Find(id);
                    if (inventory == null)
                    {
                        return HttpNotFound();
                    }
                    return View(inventory);
                }


in index add delete btn, this is an ajax call to the delete btn its used with dataTables to render data faster..

    {
"render": function (data, type, row, meta) {
               return '<a class="btn btn-danger" 
                href ="@Url.Action("Delete", "Inventory")/' + row.Id + '">Delete</a>'; 
 }

создать представление удаления:

 @model InventoryTracker.Models.Inventory //this has to be re-named to your naming 
      convention.
     @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()
        <div class="form-actions no-color">
            <input type="submit" value="Delete" class="btn btn-primary" />
            &nbsp;&nbsp;

            @Html.ActionLink("Cancel", "Index", null, new { @class = "btn btn-primary" })

        </div>
        }
                        }
0 голосов
/ 31 января 2019

Как насчет использования POST вместо DELETE в качестве метода ajax?Или просто используйте метод $ .post.

https://www.w3schools.com/jquery/ajax_post.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...