ASP.NET MVC3 Ajax.ActionLink – Cuadro de dialog de confirmación condicional

Tengo un @ Ajax.ActionLink para el cual me gustaría mostrar un cuadro de dialog de confirmación solo si se cumplen ciertas condiciones (el usuario tiene cambios no guardados). Creé una function de JavaScript que muestra el dialog de confirmación según sea necesario y devuelve verdadero o falso en function de la respuesta. Lo até en el evento onclick de ActionLink pero un resultado falso no cancela la acción. Aquí hay una muestra de mi código:

@Ajax.ActionLink("Done", .. , .. , new AjaxOptions() { UpdateTargetId = "MyContainerId"}, new { onclick = "ConfirmDone()" }) 

Aquí está la function javascript

 function ConfirmDone() { //for testing purposes we can always show the dialog box return confirm("Are you sure you want to lose unsaved changes?"); } 

¿Cuál es el mejor enfoque para mostrar un cuadro de dialog de confirmación condicional para Ajax.ActionLink?

Use el evento OnBegin:

 @Ajax.ActionLink("Done", "ActionName", new AjaxOptions { OnBegin = "return ConfirmDone()", UpdateTargetId = "MyContainerId" }) 

También puede utilizar la opción Confirmar ajax si todo lo que necesita hacer es abrir un cuadro de confirmación. Si necesita hacer más lógica personalizada (o desea usar un dialog personalizado), entonces necesitaría usar OnBegin.

Aquí hay un ejemplo de uso de Confirmar:

 @Ajax.ActionLink("Done", "ActionName", new AjaxOptions { Confirm= "Are you sure you want to do this?", UpdateTargetId = "MyContainerId" }) 

Creo que solo necesitas cambiarlo de la siguiente manera:

 @Ajax.ActionLink("Done", .. , .. , new AjaxOptions() { UpdateTargetId = "MyContainerId"}, new { onclick = "return ConfirmDone();" })