확인 대화 상자로 ActionLink 삭제


98

ActionLinkASP.NET MVC를 사용하여 레코드를 삭제 하는 간단한 방법을 구현하려고합니다 . 이것이 내가 지금까지 가지고있는 것입니다.

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

그러나 확인 상자는 표시되지 않습니다. 분명히 뭔가 빠졌거나 링크를 잘못 만들었습니다. 누구든지 도울 수 있습니까?

답변:


211

routeValues와 혼동하지 마십시오 htmlAttributes. 이 과부하를 원할 것입니다 .

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

16
GET 요청시 레코드 삭제를 피하십시오! stackoverflow.com/questions/786070/…
user1068352

6
불쌍한 구현. GET에서 서버 데이터를 수정하지 마십시오
Dan Hunex 2013

반드시 다음과 같아야합니다. new {id = item.storyId, onclick = "return confirm ( '이 기사를 삭제 하시겠습니까?');" })
Ravendarksky 2016 년

get을 사용하여 삭제하지 않으려면 POST를 사용하여 작업 링크를 사용하는 방법은 무엇입니까?
Unbreakable

1
확인이 YES이면 $ .Ajax로 전화하십시오.
Kiquenet

15

그것들은 당신이 지나가는 경로들입니다

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

찾고있는 오버로드 된 메서드는 다음과 같습니다.

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

위의 코드는 Html.ActionLink에서만 작동합니다.

에 대한

Ajax.ActionLink

다음 코드를 사용하십시오.

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

'확인'옵션은 자바 스크립트 확인 상자를 지정합니다.


4

메시지와 함께 삭제 항목을 전달하여을 사용자 정의 할 수도 있습니다. 제 경우에는 MVC와 Razor를 사용하므로 다음과 같이 할 수 있습니다.

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

3

이 시도 :

<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

webgrid 사용 하면 여기 에서 찾을 수 있으며 작업 링크는 다음과 같습니다.

여기에 이미지 설명 입력

    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에서 작동하는 삭제시 이미지 및 확인 포함

<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

나는 같은 것을 원했다. 내 세부 정보보기의 삭제 버튼. 결국 그 관점에서 게시해야한다는 것을 깨달았습니다.

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

그리고 컨트롤러에서 :

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

여기에 이미지 설명 입력삭제 대화 상자 및 glyphicon이있는 MVC5. 이전 버전에서 작동 할 수 있습니다.

@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

업데이트 / 편집 / 삭제를위한 이전의 모든 클릭 이벤트 메시지 상자는 사용자에게 경고하고 "확인"작업을 진행하면 "취소"는 변경되지 않은 상태로 유지됩니다. 이 코드의 경우 Java 스크립트 코드를 바로 분리 할 필요가 없습니다. 그것은 나를 위해 작동합니다

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


-2

Html.ActionLink DeleteId에도 이것을 시도 할 수 있습니다.


3
이 대답을 조금 설명해 주시겠습니까? 제안을 보여 주거나 OP의 코드에서 이것이 가야 할 위치를 설명하는 코드 스 니펫을 제공 할 수 있습니까?
skrrgwasme 2014
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.