czuroski
czuroski

Reputation: 4332

New window using asp mvc in html form

I am building an mvc app for reporting. I have a page that has a form on it which contains multiple dropdownlist to choose some criteria for a report. I then have an input button to create the report. This button call a new view from the same controller. The new view gets the values from the page where the criteria is chosen from parameters and uses that to populate it's own view model. This is all working fine.

I would like to open the reports in a new window. When I look at the controller, all of the parameters that are supposed to be coming from the selection page are null. I assume I will have to pass these in via the querystring to be picked up by the controller. Is there a way that I can get the values of the dropdownlists from within my viewpage to construct the querystring?

Is this a good way to accomplish what I am trying to do? Would I be better of using an ActionLink instead of an input button? does it make any difference?

I hope this all makes sense. Thanks for any thoughts.

Upvotes: 12

Views: 18835

Answers (2)

David Glenn
David Glenn

Reputation: 24522

As NickLarsen says...

You could use the target="_blank" attribute of the form element to display the results in a new window.

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

Or

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

Upvotes: 6

Nick Larsen
Nick Larsen

Reputation: 18877

Just set a target attribute on your form to _blank and it should open the request in a new page/tab depending on the browser being used.

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

Upvotes: 38

Related Questions