ASP.NET MVC modal dialog/popup best practice


Estoy buscando la forma más estándar de lograr diálogos modales en ASP.NET MVC.

Un ejemplo de lo que estoy tratando de hacer es cuando selecciono un elemento de mi página "lista", quiero que la página "detalles" sea una ventana emergente sobre la lista y NO una página nueva. No estoy buscando un hack. Quiero que sea una solución que siga la ASP.NET Patrón MVC. También preferiría no salir de jQuery y ASP.NET Ajax (no hay plugins A menos que esté emergiendo como una mejor práctica).

Author: SteveC, 2009-05-14

3 answers

La sugerencia de diálogo de Lunchy es agradable. Simplemente haga una solicitud ajax a la acción de su controlador y haga que la acción devuelva lo que desea mostrar, como una vista parcial con algún formato html. Luego, pon ese html en tu diálogo, o lo que sea que planees mostrar, y muéstralo.

 20
Author: scottm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 02:38:48

La biblioteca de interfaz de usuario de jQuery tiene un widget de diálogo que uso para cosas como esta. Si bien es un complemento, IMO, la mejor práctica es simplemente no rodar su propio widget de diálogo.

Http://jqueryui.com/demos/dialog /

 37
Author: Casey Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 02:28:16

Una de las cosas que va de la mano con MVC son las url RESTful. Siendo ese el caso, la forma "estándar" de manejar esto sería hacer que los detalles levanten una nueva página con su propia URL RESTful (y bookmarkable) en lugar de volar un diálogo sobre la página. Ciertamente podría hacer un diálogo de "vista previa de detalles" dentro del contexto de la lista, pero si va a interactuar con los detalles, consideraría hacer una solicitud completa y obtener los detalles en su propia página.

 6
Author: tvanfosson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 02:59:36