我正在构建一个用于报告的mvc应用程序。我有一个页面,上面有一个表单,其中包含多个下拉列表,可以为报表选择一些标准。然后我有一个输入按钮来创建报告。此按钮从同一控制器调用新视图。新视图从参数中选择条件的页面中获取值,并使用它来填充其自己的视图模型。这一切都很好。
我想在新窗口中打开报告。当我查看控制器时,应该来自选择页面的所有参数都为空。我假设我必须通过查询字符串传递这些来由控制器拾取。有没有办法可以从我的视图中获取下拉列表的值来构造查询字符串?
这是完成我想要做的事情的好方法吗?我会更好地使用ActionLink而不是输入按钮吗?这会有什么不同吗?
我希望这一切都有道理。谢谢你的任何想法。
答案 0 :(得分:32)
只需在表单上将target
属性设置为_blank
,它就应该在新页面/标签中打开请求,具体取决于所使用的浏览器。
<% using (Html.BeginForm(myAction, myController, FormMethod.Post, new { target = "_blank" })
{ %>
<%-- ... --%>
<% } %>
答案 1 :(得分:4)
正如NickLarsen所说......
您可以使用表单元素的target="_blank"
属性在新窗口中显示结果。
<form action="/controller/action" method="post" target="_blank">
或者
<% Html.BeginForm("action", "controller", FormMethod.Post, new { target="_blank" }); %>
//...
<% Html.EndForm(); %>