2013-12-03 35 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正确传递。