2013-08-29 54 views
0

的ActionResult我有一個Actionlink應該是可點擊的。它應該將發票號碼 傳遞給我的控制器中稱爲報表的方法。我爲此創建了一條路線,下面顯示爲 。 目前我無法使用傳遞的參數點擊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"); 
        } 
+0

是否有你的頁面可能被劫持點擊的鏈接上一些JavaScript?還有你怎麼在Firebug的Net選項卡看到了什麼?是一個Ajax請求或者當鏈接被點擊時發送到服務器的正常請求?鏈接上生成的「href」是什麼? –

+0

這是我得到的所有http://dev.site/invoice?id=103456723我沒有看到報告方法作爲網址的一部分雖然 – user2320476

+0

是的,這似乎是錯誤的,看起來你的路線定義有問題,很難說不知道你是如何宣佈你所有的路線 –

回答

0

這是什麼爲我工作。

routes.MapRoute(null, "Invoice/{action}", new { controller = "Invoice", 
                  action = "Index" }); 

介紹「Invoice/{action}"使它工作。