Estoy desarrollando un sitio ASP.Net MVC
y en él me enumerar algunas reservas de una consulta de base de datos en una tabla con un ActionLink
de cancelar la reserva en una fila específica con una cierta BookingId
así:datos que pasan a un diálogo jQuery UI
Mis reservas
<table cellspacing="3">
<thead>
<tr style="font-weight: bold;">
<td>Date</td>
<td>Time</td>
<td>Seats</td>
<td></td>
<td></td>
</tr>
</thead>
<tr>
<td style="width: 120px;">2008-12-27</td>
<td style="width: 120px;">13:00 - 14:00</td>
<td style="width: 100px;">2</td>
<td style="width: 60px;"><a href="/Booking.aspx/Cancel/15">cancel</a></td>
<td style="width: 80px;"><a href="/Booking.aspx/Change/15">change</a></td>
</tr>
<tr>
<td style="width: 120px;">2008-12-27</td>
<td style="width: 120px;">15:00 - 16:00</td>
<td style="width: 100px;">3</td>
<td style="width: 60px;"><a href="/Booking.aspx/Cancel/10">cancel</a></td>
<td style="width: 80px;"><a href="/Booking.aspx/Change/10">change</a></td>
</tr>
</table>
lo que sería interesante es si podría utilizar el jQuery Dialog
popup un mensaje preguntando si el usuario está seguro de que quiere cancelar la reserva. He estado tratando de conseguir que esto funcione pero sigo quedarse atascado en cómo crear una función de jQuery que acepta parámetros para que pueda reemplazar el
<a href="/Booking.aspx/Cancel/10">cancel</a>
con
<a href="#" onclick="ShowDialog(10)">cancel</a>
.
La función ShowDialog
se abra el cuadro de diálogo y también pasar el parametro 10 al cuadro de diálogo de modo que si el usuario hace clic en sí, entonces trata sobre todo de la href: /Booking.aspx/Change/10
yo he creado al diálogo jQuery en un guión como esto:
$(function() {
$("#dialog").dialog({
autoOpen: false,
buttons: {
"Yes": function() {
alert("a Post to :/Booking.aspx/Cancel/10 would be so nice here instead of the alert");},
"No": function() {$(this).dialog("close");}
},
modal: true,
overlay: {
opacity: 0.5,
background: "black"
}
});
});
y el diálogo en sí:
<div id="dialog" title="Cancel booking">Are you sure you want to cancel your booking?</div>
Así que, finalmente, a mi pregunta: ¿Cómo puedo ac ¿Completar esto? o hay una mejor manera de hacerlo?
Gracias por una buena respuesta. Voy a probarlo, una pregunta sin embargo. Mencionas que es mejor hacer un POST en lugar de un GET, lo que implica que un href regular como href = "/ Booking.aspx/Cancel/10" sería un GET ¿verdad? y si es así, ¿a qué le parecería hacer una publicación? – Frederik
Para hacer una publicación, en lugar de cambiar la ubicación de la ventana, podría usar la función jQuery $ .post() ajax. Ver http://docs.jquery.com/Ajax/jQuery.post#examples – Franck
No usaría $ .post(), ese enfoque no se degrada bien. Simplemente escriba un estándar