Onay iletişim kutusu ile ActionLink'i silin


98

ActionLinkASP.NET MVC kullanarak kayıtları silen basit bir uygulamaya çalışıyorum . Şu ana kadar sahip olduğum şey bu:

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

Ancak, onay kutusunu göstermez. Açıkçası bir şeyi kaçırıyorum veya bağlantıyı yanlış oluşturdum. Biri yardım edebilir mi?

Yanıtlar:


211

Karıştırmayın routeValuesile htmlAttributes. Muhtemelen bu aşırı yüklemeyi istiyorsunuz :

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

16
GET talebi üzerine kayıtları silmekten kaçının! stackoverflow.com/questions/786070/…
user1068352

6
Kötü uygulama.
GET'deki

kesinlikle şöyle olmalıdır: new {id = item.storyId, onclick = "return onayla ('Bu makaleyi silmek istediğinizden emin misiniz?');" })
Ravendarksky

Get kullanarak silmemiz gerekmiyorsa, POST kullanarak Eylem bağlantısı aracılığıyla nasıl yapılır?
Unbreakable

1
Onay EVET ise $ .Ajax'ı arayın?
Kiquenet

15

Bunlar geçtiğin rotalar

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

Aradığınız aşırı yüklenmiş yöntem şudur:

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?');" })     %>

Yukarıdaki kod yalnızca Html.ActionLink için çalışır.

İçin

Ajax.ActionLink

aşağıdaki kodu kullanın:

<%= 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" })%>

'Onayla' seçeneği, javascript onay kutusunu belirtir.


4

Silme öğesini mesajla birlikte geçirerek de özelleştirebilirsiniz. Benim durumumda MVC ve Razor kullanıyorum, bu yüzden bunu yapabilirim:

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

3

Bunu dene :

<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

Web ızgarasını kullanarak burada bulabilirsiniz , eylem bağlantıları aşağıdaki gibi görünebilir.

görüntü açıklamasını buraya girin

    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

Mozilla Firefox'ta çalışan resim ve silme onayı ile

<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

Ben de aynı şeyi istedim; Ayrıntılar görünümümde bir silme düğmesi. Sonunda bu bakış açısıyla yayınlamam gerektiğini fark ettim:

@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?');" />
        }

Ve Kontrolörde:

 // 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

görüntü açıklamasını buraya girinSilme diyaloğu ve glificon ile MVC5. Önceki sürümlerde çalışabilir.

@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

Kayıtları güncelle / düzenle / sil mesaj kutusu için önceki herhangi bir tıklama olayı kullanıcıyı uyarır ve "Tamam" ise eyleme devam et, aksi takdirde "iptal" değişmeden kalır. Bu kod için java betiği kodunu ayırmaya gerek yoktur. benim için çalışıyor

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


-2

Bunu Html.ActionLink DeleteId için de deneyebilirsiniz.


3
Bu cevabı biraz açıklayabilir misin? Önerinizi gösteren veya bunun OP'nin kodunda nereye gitmesi gerektiğini açıklayan bir kod parçacığı sağlayabilir misiniz?
skrrgwasme
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.