-1

这是我的问题。在控制器中,我有这种方法,当我单击按钮时,它会将我的视图导出到文件中。

public ActionResult Export(string searchString, int searchOrder = 0)
{
    var user = from m in db.Orders select m;

    if (!String.IsNullOrEmpty(searchString))
    {
        user = user.Where(s => s.ClientID.Contains(searchString));
    }

    Response.AddHeader("Content-Type", "application/vnd.ms-excel");            
    return this.View(user);
}

我的索引视图:

@model IEnumerable<MyApp.Models.Order>

@{
    ViewBag.Title = "Index";
}

<h2>Orders Historic</h2>    

<div id="orderDiv">
@using (Html.BeginForm("Export", "Historic", FormMethod.Get))
{
            <p>
        Generate Order with ClientID :&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
         @Html.TextBox("searchString")

        <input type="submit" value="GENEREMOI" />
        </p>
}
</div>

还有我的导出视图:

@model IEnumerable<KrysGroup.Models.Order>

    <table cellpadding="3" cellspacing="3">
        <tr>       
            <td width="12%" align="center">
                Client Name/ID
            </td>
            <td width="15%" align="center">
                N° Order
            </td>

            OTHER TD....

        </tr>   

@foreach (var item in Model)
{
      TimeSpan result = DateTime.Now - item.OrderDate;

      if (result.Days < 31)
      {            
            <tr border="1" bgcolor="@Odd">
               <td> @Html.DisplayFor(modelItem => item.Username) </td>    
               <td> @Html.DisplayFor(modelItem => item.OrderId) </td>  
                <td>
                    <ul style="list-style-type:none; padding:0; margin:0">
                        @if (item.OrderDetails != null)
                        {
                            foreach (var o in item.OrderDetails)
                            {
                                if (o.Pack == null)
                                { 
                                    <li>  @Html.DisplayFor(modelItem => o.Product.Name)  </li>
                                }
                                else
                                {  
                                    <li> <text>Pack</text>  @Html.DisplayFor(modelItem => o.Pack.Name)  </li>
                                }
                            }
                        }  
                    </ul>             
                </td>

                OTHER TD...    
 </table>

因此,在我看来,我在文本框中通知了一个 ClientID,当我单击该按钮时,它会将我的表中具有此 ClientID 的所有字段导出到一个文件中。

我想自动化这个动作,也就是说我想写一个方法或其他东西,当我点击按钮时,它会为它在我的表中遇到的每个 clientId 执行这​​个 export() 方法。

我希望我足够清楚,对不起我的英语.. 感谢您的回答、链接、提示。

4

1 回答 1

0

您可以将部分视图键入到单击按钮时加载的 Id 列表中。

因此,在控制器中,您有一个方法可以转换您想要的内容并返回一个输入模型转换的视图。

在您的主视图中,您有一个 div 将在原始按钮的单击事件之后填充部分视图。

@Ajax.ActionLink("Name", "NameOfTheAction", "NameOfTheController",
                                   new { id = itemId },
                                   new AjaxOptions { HttpMethod = "Get", UpdateTargetId = "divInMainView", OnSuccess = "Do Something (js)" },
                                    new { html-props })

在您看来,如何填充取决于您

于 2012-09-28T13:24:41.190 回答