HTML.ActionLink传递对象有参数

时间:2012-11-05 20:24:23

标签: asp.net asp.net-mvc asp.net-mvc-2

我需要小帮助才能将对象类型传递给控制器​​。我试着直接传递物体, 这是例外

System.Web.Mvc.HtmlHelper<dynamic>没有适用的方法 名为ActionLink,但似乎有一个名称的扩展方法 无法动态分派扩展方法。考虑铸造
动态参数或调用扩展方法没有
扩展方法语法。

即使我添加了类型转换的代码,但仍然会抛出编译错误,如上所述

InProgressGrid.Column(header: "File Name", columnName: "FileName",format:(item) => Html.ActionLink(((string)item.FileName), "DownloadReport", (Domain.UserObject)item ,null))

有什么方法可以将多个参数传递给控制器​​动作方法

InProgressGrid.Column(header: "File Name", columnName: "FileName",format:(item) => Html.ActionLink(((string)item.FileName), "DownloadReport", new {FileName = item.FileName,PK= item.PartitionKey },null)),

现在当我运行应用程序时,我只看到一个属性即。传递了FileName,但没有将PartitionKey传递给Controller的动作参数..

上述条件的全局路由是否有任何变化

请求帮助我,这是非常紧急的

1 个答案:

答案 0 :(得分:0)

您需要添加路线:

routes.MapRoute(
    "ReportDownload",     // Route name
    "Reports/{PK}/{FileName}",                           // URL with parameters
    new { controller = "Reports", action = "DownloadReport", PK = "", FileName="" }  // Parameter defaults
);

只需将控制器名称替换为您的名称即可。