モデルをエクスポートするハイパーリンクをページに作成したいのですが、エクスポートする必要があるモデルごとにメソッドを記述したくありません。モデルをパラメーターの 1 つとして取り、そのモデルでエクスポート ロジックを実行できるメソッドを作成したいと考えています。ビューに送信したモデルをコントローラー アクションに戻す方法はありますか?
編集:
次のコントローラーアクションがあります-
public ViewResult PenDaily(Nullable<DateTime> startDate = null, Nullable<DateTime> endDate = null, string listName = "")
{
//Removed code for brevity/clarity
PenDailyViewModel penDailyView = new PenDailyViewModel();
penDailyView.startDate = startDate;
penDailyView.endDate = endDate;
penDailyView.listNames = GetLists(m_db);
penDailyView.penDaily = GeneratePenDaily(m_db, listName, startDate, endDate);
penDailyView.penSummary = GeneratePenSummary(m_db, startDate, endDate, "").Where(a => a.listName == listName);
return View(penDailyView);
}
PenDailyViewModel は、Razor ビューに渡すモデル オブジェクトです。PenDaily と PenSummary はどちらも、結果ページのテーブルで使用される IQueryable オブジェクトです。PenDaily はデータのメイン セットであり、PenSummary はテーブル フッターの合計行に使用されます。
この一連のデータを取得して、ファイルにエクスポートしたいと考えています。そのために書かれた関数がありますが、自分のページからそれを利用する方法がわかりません。ユーザーがハイパーリンクをクリックすると、エクスポートを保存するように求められるように設定したいと思います。
それが役立つ場合、私の Razor ビュー:
@model WebTools.Models.PenDailyViewModel
<table>
<thead>Header Stuff</thead>
<tbody>
@foreach (var item in Model.penDaily)
{
//Generate table body
}
</tbody>
<tfoot>
@foreach (var item in Model.penSummary)
{
//Generate table footer
}
</tfoot>
</table>