2013-12-03 66 views
0

我有一個網格我正在處理,其中我想將一列鏈接到另一個屏幕。我想這樣做,當用戶點擊網格中的鏈接時,它們將被導航到詳細信息屏幕。使用MVC網格和創建來自網格數據的操作鏈接

目前我有什麼是:

@grid.GetHtml(tableStyle:"listing-border",headerStyle:"gridhead",footerStyle:"paging",rowStyle:"td-dark",alternatingRowStyle:"td-light", 
          columns: 
           grid.Columns(
            grid.Column("BatchNumber", "Batch Number", format: (item) => Html.ActionLink(((string)item.BatchNumber), "BatchDetails", "Batching", new { id = (string)item.BatchNumber })), 
            grid.Column("BatchGroupItemDate", "Date"), 
            grid.Column("BatchComment", "Comment"), 
            grid.Column("NumberOfDocuments", "Number of Documents"), 
            grid.Column("TotalTransfered", "Total Transfered"), 
            grid.Column("NotTransfered", "Not Transfered") 
           ),mode:WebGridPagerModes.All) 

批號在我看來是點擊,而且確實觸發相關的控制器的方法,但是,id的值傳遞的爲空。這是因爲它不記得在網格客戶端的那個位置?

+0

什麼是您的控制器方法簽名? – Tsasken

+0

'[Authorize] public ActionResult BatchDetails(string id)' –

+0

當我檢查鏈接的元素時,我得到'ADO1311010425'其中'1092838'是批號。它似乎沒有正確構建操作鏈接。 –

回答

0

我有什麼上述

grid.Column("BatchNumber", "Batch Number", format: (item) => Html.ActionLink(((string)item.BatchNumber), "BatchDetails", "Batching", new { id = (string)item.BatchNumber })) 

是不正確的,特定的過載走的是ID爲這解釋了奇怪的字符串,我得到一個HTML參數。

這是正確的:

grid.Column("BatchNumber", "Batch Number", format: (item) => Html.ActionLink(((string)item.BatchNumber), "BatchDetails", "Batching", new { id = (string)item.BatchNumber }, null)) 

「空」 這裏是超載的HTML PARAMS爲null,讓ID正確傳遞。