クリック可能な Actionlink があります。請求書番号をコントローラーの Report というメソッドに渡す必要があります。このためのルートを作成しました。以下に示します。現時点では、渡されたパラメーターで Report メソッドをヒットできません。何も起こりません。マイページがちらつくだけです。私は何が欠けていますか?
@foreach (var objUser in Model.Invoices)
{
<tr>
<td><input type="checkbox" name="ckCheck" /></td>
<td>@objUser.invoiceDate</td>
<td>@Html.ActionLink(objUser.invoiceNumber, "Report", new { id = objUser.invoiceNumber }) </td>
<td>@objUser.accountNumber</td>
<td>@String.Format("{0:#,0.00}", objUser.amount)</td>
<td>@String.Format("{0:#,0.00}", objUser.amountDue)</td>
</tr>
}
public static void RegisterRoutes(RouteCollection routes)
{
var routeProvider = PluginLocator.GetPlugin<IRouteProvider>();
routes.MapRoute(null, "Invoice", new { controller = "Invoice", action = "Report" });
routeProvider.RegisterRoutes(routes);
}
public ActionResult Report(int id = 0)
{
ReportClass rptH = new ReportClass();
rptH.FileName = Server.MapPath("/myreport/ourReport.rpt");
rptH.Load();
rptH.SetDatabaseLogon("zombie", "zombie29");
rptH.SetParameterValue("PARAM_REPORT_RUN_ID", id);
Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(stream, "application/pdf");
}