0

ここで静かに説明します。テキストボックスで通知した検索文字列に従って、maテーブルのいくつかの行を返すこのメソッドがあります。

    public ActionResult Index(string site, string searchString)
    {
        var user = from m in db.OrderDetails
                   select m;

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

        if (!String.IsNullOrEmpty(site))
        {
            user = user.Where(c => c.Order.SiteNumber.Contains(site));
        }

            return View(user);            
    }        

同じクラスで、pdf ファイルを生成する別の方法があります (すべてのバックエンド プロセスは、最初のプロジェクトに含まれる 2 番目のプロジェクトで設定されます)。

  public ActionResult PrintOrders()
    {
        var user = from m in db.OrderDetails   
                   select m;                               

        return this.ViewPdf("Facture", "PrintView", user);
    }

この 2 番目の方法は、pdf ファイルを生成するときに、テーブルのすべてのエントリを表示します。リンクをクリックして(テーブルエントリを表示する同じページビューで)PDFファイルを生成するときに、以前に検索を行った場合、検索文字列(またはサイト文字列)に一致するフィールドがあることを望みます。

どうすれば実装できますか? それを行う方法はありますか?ご協力いただきありがとうございます。あまり関連性のないタイトルで申し訳ありません。また、私の英語で申し訳ありませんが、私の目的を理解していただければ幸いです。

編集情報

調べた後、次のように Index() メソッドのような PrintOrders() メソッドを設定すると:

public ActionResult PrintOrders(string searchString, string username)        
{
            var user = from m in db.OrderDetails select m;

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

            if (!String.IsNullOrEmpty(site))
            {
                user = user.Where(c => c.Order.SiteNumber.Contains(site));               
            }

            return this.ViewPdf("Facture Krys-Group", "PrintView", user);
        }

そして私のビューを次のように設定します:

@using (Html.BeginForm("PrintOrders", "Historic", FormMethod.Get))
{ 

      Seach by ID : @Html.TextBox("searchString")

      Search by Site : @Html.TextBox("site")

      <input type="submit" value="Search" /></p>
}

それは動作します。しかし、「PrintOrders」ではなく「Index」のビューに同じフォームが既にあります。どうすれば両方を組み合わせることができますか?

4

1 に答える 1

0

完全にフォローしているかどうかはわかりませんが、部分ビューを使用して探しているものを達成できると思います。あなたが言及したフォームは、pdfビューにレンダリングされる部分的なビューであり、実際には1つのフォームを持っているが両方のページに表示されるようにすることができます. うまくいけば、私はあなたが求めていたものを理解し、これがあなたを助けます.

于 2012-09-04T14:07:03.860 に答える