【问题标题】:ASP.NET MVC: on button click, call display multiple ActionResults in different windowsASP.NET MVC:单击按钮时,调用在不同窗口中显示多个 ActionResult
【发布时间】:2011-10-30 12:27:27
【问题描述】:

我有一个包含值下拉列表和提交按钮的表单。

目前,当您单击提交按钮时,会调用存储过程,然后应用程序生成一个 url,然后 ActionResult 是重定向到新窗口。 url 基于下拉列表中当前选择的值。

我们的客户想要另一个按钮,当点击它时,基本上会做同样的事情,但下拉列表中的所有值。 基本上,点击时会打开多个窗口,每个窗口的 url 都基于下拉列表中的值。

我刚开始使用 MVC,研究让我更加困惑。我希望有人能指出我正确的方向。 我应该通过javascript中的某种循环来处理这个吗?如何?可以举几个例子吗?

ASPX 部分:

<div id="MyContainer" class="select-report">
  <%
    using (Html.BeginForm(MyManager.Query.Actions.GenerateReport(null), FormMethod.Post, new{target="_blank"}))
    {%>
      <select name="SearchText" class="my-values-select">
        <% foreach (var cc in Model.MyCentresList)
           {%>
        <option value="<%=Html.Encode(cc.Name) %>">
          <%=Html.Encode(cc.Name) %></option>
        <% }  %>
      </select>
      <input type="hidden" name="SearchType" value="MyCentre" />
      <input type="submit" value="Generate" name="EntityName" />                                          
  <% } %>      
</div>

代码隐藏:

public virtual ActionResult GenerateReport(GenerateReportOperation operation)
    {
        string entityName = operation.SearchText;
        int entityType = (int)operation.SearchType;

        string requestID1 = <code here that calls a stored procedure, a value is returned>;
        string requestID2 = <code here that calls a stored procedure, a value is returned>;

        string urlString = <code here that contructs the URL based on the values of entityName, entityType, requestID1, requestID2>;

        return Redirect(urlString);
    }

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    您必须使用 JavaScript 为每个单独的 HTTP 请求打开新窗口。

    【讨论】:

    • 你熟悉 JavaScript 吗?如果是,请使用 window.open()。如果没有,印刷版和网络上有很多学习资源。
    • 是的,我熟悉 javascript。我不确定的是如何在单击提交按钮时多次模拟 Html.BeginForm。
    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多