2012-09-18 2 views
4

목록을 삭제할 것인지 묻는 Javascript 팝업을 만들고 싶습니다.ActionLink 삭제 확인

다음은 현재 내가 가지고있는 것입니다 (작동하지 않습니다 - 컨트롤러가 캐치 할 때 Guid가 null 임).

@Html.ActionLink("Delete", "Delete", "Listing", listing.Guid, new { onclick = "return confirm('Are you sure you want to delete this listing?')" }) 

첫 번째 삭제 문자열, 두 번째 삭제이 방법의 ActionName입니다, 목록은 컨트롤러의 이름이, listing.Guid 내가 가로 질러 그리고 마지막으로, 물론, onclick을 보낼 매개 변수입니다 Javascript입니다.

내가 끔찍하게 잘못 될 수있는 아이디어는 무엇입니까?

편집 더 좋은 확인 대화 상자는 어떻게 사용할 수 있습니까? 부트 스트랩 사용.

@Html.ActionLink(
    "Delete", 
    "Delete", 
    "Listing", 
    new { id = listing.Guid }, 
    new { onclick = "return confirm('Are you sure you want to delete this listing?')" } 
) 

및 각각의 컨트롤러 액션 :

public ActionResult Delete(Guid id) 
{ 
    ... 
} 

그리고 네, 그건 아주 나쁜 생각 ActionLinks를 사용하여 요청을 GET 할 수

+0

이 응답을 살펴보십시오 :

@using (Html.BeginForm("Delete", "Listing", new { id = listing.Guid }, FormMethod.Post, new { onsubmit = "return confirm('Are you sure you want to delete this listing?');" })) { @Html.HttpMethodOverride(HttpVerbs.Delete) <button type="submit">Delete</button> } 

하고 각각의 컨트롤러 액션 : HTML 양식이 보편적으로이 동사를 지원하지 않기 때문에 그러나 당신이 AJAX 또는 사용 POST 동사를 사용할 수 있습니다 중 하나 [HTTP ://stackoverflow.com/questions/2537463/asp-net-mvc-how-to-make-users-confirm-the-delete][1] [1] : http://stackoverflow.com/ 질문/2537463/asp-net-mvc-how-to-make-users-confirm-the-delete –

답변

9

당신은 경로 값을 전달하기 위해 익명 객체를 사용할 수 있습니다 서버에서 상태를 수정하는 작업 (예 : 삭제)을 호출합니다. 훨씬 더 나은 방법은이 경우에 올바른 HTTP 동사 - DELETE를 사용하는 것입니다.

[HttpDelete] 
public ActionResult Delete(Guid id) 
{ 
    ... 
} 
+0

우수. 아름답게 설명했다. 도움을 주셔서 대단히 감사하고 나 자신과 같은 멍청한 놈에게 참석하는 자신 만의 방식으로 나간다 :) 고맙게 생각합니다. – Subby