ここで静かに説明します。テキストボックスで通知した検索文字列に従って、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」のビューに同じフォームが既にあります。どうすれば両方を組み合わせることができますか?