-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 に答える