2010-11-16 61 views
7

Estoy creando una aplicación de mvc para generar informes. Tengo una página que tiene un formulario que contiene múltiples listas desplegables para elegir algunos criterios para un informe. Luego tengo un botón de entrada para crear el informe. Este botón llama a una nueva vista desde el mismo controlador. La nueva vista obtiene los valores de la página donde se eligen los criterios a partir de los parámetros y los utiliza para rellenar su propio modelo de vista. Esta todo trabajando bien.Nueva ventana usando asp mvc en formato html

Me gustaría abrir los informes en una nueva ventana. Cuando miro el controlador, todos los parámetros que se supone que provienen de la página de selección son nulos. Supongo que tendré que pasarlos a través de la cadena de consulta para que el controlador los recoja. ¿Hay alguna manera de que pueda obtener los valores de las listas desplegables desde mi página de visualización para construir la cadena de consulta?

¿Es esta una buena manera de lograr lo que estoy tratando de hacer? ¿Sería mejor utilizar un ActionLink en lugar de un botón de entrada? ¿Hace alguna diferencia?

Espero que todo esto tenga sentido. Gracias por cualquier pensamiento

Respuesta

29

Simplemente establezca un atributo target en su formulario a _blank y debería abrir la solicitud en una página/pestaña nueva según el navegador que esté utilizando.

<% using (Html.BeginForm(myAction, myController, FormMethod.Post, new { target = "_blank" }) 
    { %> 
     <%-- ... --%> 
<% } %> 
+1

gracias - esto funcionó a la perfección. – czuroski

4

Como dice NickLarsen ...

se puede utilizar el atributo target="_blank" del elemento de formulario para mostrar los resultados en una nueva ventana.

<form action="/controller/action" method="post" target="_blank"> 

O

<% Html.BeginForm("action", "controller", FormMethod.Post, new { target="_blank" }); %> 
    //... 
<% Html.EndForm(); %> 
+0

La sobrecarga 'BeginForm' que está utilizando toma valores de ruta. ¿Se puede establecer el objetivo en valores de ruta? Pensé que debería estar configurado en atributos html. Aunque no he intentado lo que has escrito, solo curiosidad. –

+0

@NickLarsen Tiene razón, escribí la sobrecarga equivocada. Lo he actualizado para usar el objeto htmlAttributes –

Cuestiones relacionadas