Hapus ActionLink dengan dialog konfirmasi


98

Saya mencoba menerapkan sederhana ActionLinkyang akan menghapus catatan menggunakan ASP.NET MVC. Inilah yang saya miliki sejauh ini:

<%= Html.ActionLink("Delete", 
                    "Delete", 
                    new { id = item.storyId, 
                          onclick = "return confirm('Are you sure?');" 
                        })%> 

Namun, itu tidak menunjukkan kotak konfirmasi. Jelas saya melewatkan sesuatu atau saya salah membuat tautan. Adakah yang bisa membantu?

Jawaban:


211

Jangan bingung routeValuesdengan htmlAttributes. Anda mungkin ingin kelebihan ini :

<%= Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = item.storyId }, 
    new { onclick = "return confirm('Are you sure you wish to delete this article?');" }) 
%>

16
Hindari menghapus catatan atas permintaan GET! stackoverflow.com/questions/786070/…
user1068352

6
Implementasi yang buruk. Jangan memodifikasi data server pada GET
Dan Hunex

pasti itu harus: new {id = item.storyId, onclick = "return confirm ('Apakah Anda yakin ingin menghapus artikel ini?');" })
Ravendarksky

Jika kita tidak disangka menghapus menggunakan get lalu bagaimana melalui link Action menggunakan POST?
dipecahkan

1
Hubungi $ .Ajax jika konfirmasi adalah YA?
Kiquenet

15

itu adalah rute yang Anda lewati

<%= Html.ActionLink("Delete", "Delete",
    new { id = item.storyId }, 
    new { onclick = "return confirm('Are you sure you wish to delete this article?');" })     %>

Metode kelebihan beban yang Anda cari adalah yang ini:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

http://msdn.microsoft.com/en-us/library/dd492124.aspx


15
<%= Html.ActionLink("Delete", "Delete",
    new { id = item.storyId }, 
    new { onclick = "return confirm('Are you sure you wish to delete this article?');" })     %>

Kode di atas hanya berfungsi untuk Html.ActionLink.

Untuk

Ajax.ActionLink

gunakan kode berikut:

<%= Ajax.ActionLink(" ", "deleteMeeting", new { id = Model.eventID, subid = subItem.ID, fordate = forDate, forslot = forslot }, new AjaxOptions
                                            {
                                                Confirm = "Are you sure you wish to delete?",
                                                UpdateTargetId = "Appointments",
                                                HttpMethod = "Get",
                                                InsertionMode = InsertionMode.Replace,
                                                LoadingElementId = "div_loading"
                                            }, new { @class = "DeleteApointmentsforevent" })%>

Opsi 'Konfirmasi' menentukan kotak konfirmasi javascript.


4

Anda juga dapat menyesuaikan dengan mengirimkan item hapus bersama dengan pesan. Dalam kasus saya menggunakan MVC dan Razor, jadi saya bisa melakukan ini:

@Html.ActionLink("Delete", 
    "DeleteTag", new { id = t.IDTag }, 
    new { onclick = "return confirm('Do you really want to delete the tag " + @t.Tag + "?')" })

3

Coba ini :

<button> @Html.ActionLink(" ", "DeletePhoto", "PhotoAndVideo", new { id = item.Id }, new { @class = "modal-link1", @OnClick = "return confirm('Are you sure you to delete this Record?');" })</button>

3

Menggunakan webgrid Anda dapat menemukannya di sini , tautan tindakan dapat terlihat seperti berikut.

masukkan deskripsi gambar di sini

    grid.Column(header: "Action", format: (item) => new HtmlString(
                     Html.ActionLink(" ", "Details", new { Id = item.Id }, new { @class = "glyphicon glyphicon-info-sign" }).ToString() + " | " +
                     Html.ActionLink(" ", "Edit", new { Id = item.Id }, new { @class = "glyphicon glyphicon-edit" }).ToString() + " | " +
                     Html.ActionLink(" ", "Delete", new { Id = item.Id }, new { onclick = "return confirm('Are you sure you wish to delete this property?');", @class = "glyphicon glyphicon-trash" }).ToString()
                )

1

Dengan gambar dan konfirmasi hapus, yang berfungsi di mozilla firefox

<button> @Html.ActionLink(" ", "action", "controller", new { id = item.Id }, new { @class = "modal-link1", @OnClick = "return confirm('Are you sure you to delete this Record?');" })</button>
<style>
a.modal-link{ background: URL(../../../../Content/Images/Delete.png) no-repeat center;
            display: block;
            height: 15px;
            width: 15px;

        }
</style>

1

Saya menginginkan hal yang sama; tombol hapus pada tampilan Detail saya. Saya akhirnya menyadari bahwa saya perlu memposting dari pandangan itu:

@using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()
            @Html.HiddenFor(model => model.Id)
            @Html.ActionLink("Edit", "Edit", new { id = Model.Id }, new { @class = "btn btn-primary", @style="margin-right:30px" })

            <input type="submit" value="Delete" class="btn btn-danger" onclick="return confirm('Are you sure you want to delete this record?');" />
        }

Dan, di Kontroler:

 // this action deletes record - called from the Delete button on Details view
    [HttpPost]
    public ActionResult Details(MainPlus mainPlus)
    {
        if (mainPlus != null)
        {
            try
            {
                using (IDbConnection db = new SqlConnection(PCALConn))
                {
                    var result = db.Execute("DELETE PCAL.Main WHERE Id = @Id", new { Id = mainPlus.Id });
                }
                return RedirectToAction("Calls");
            } etc

0

masukkan deskripsi gambar di siniMVC5 dengan dialog hapus & glyphicon. Dapat bekerja versi sebelumnya.

@Html.Raw(HttpUtility.HtmlDecode(@Html.ActionLink(" ", "Action", "Controller", new { id = model.id }, new { @class = "glyphicon glyphicon-trash", @OnClick = "return confirm('Are you sure you to delete this Record?');" }).ToHtmlString()))

-1

Setiap peristiwa klik sebelumnya untuk perbarui / edit / hapus catatan kotak pesan memperingatkan pengguna dan jika "Oke" lanjutkan untuk tindakan lain "batal" tetap tidak berubah. Untuk kode ini tidak perlu memisahkan kode java script. itu berhasil untuk saya

<a asp-action="Delete" asp-route-ID="@Item.ArtistID" onclick = "return confirm('Are you sure you wish to remove this Artist?');">Delete</a>


-2

Anda juga dapat mencoba ini untuk Html.ActionLink DeleteId


3
Bisakah Anda menjelaskan jawaban ini sedikit? Mungkin memberikan potongan kode yang menunjukkan saran Anda atau menjelaskan di mana dalam kode OP ini harus pergi?
skrrgwasme
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.