0

オブジェクト型にパラメーターがあり、コントローラーに渡そうとしています。オブジェクトを直接渡してみました。例外は次のとおりです。

`System.Web.Mvc.HtmlHelper<dynamic>` has no applicable method 
named `ActionLink` but appears to have an extension method by that name.  
Extension methods cannot be dynamically dispatched. Consider casting  
the dynamic arguments or calling the extension method without the  
extension method syntax.

型キャスト用のコードを追加しても、上記のようにコンパイル エラーがスローされます

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)),

アプリケーションを実行すると、属性が 1 つしか表示されません。FileName は渡されますが、 Controller の action パラメータに PartitionKey が渡されません。

上記の条件が機能するようにグローバル ルーティングに変更はありますか?

4

1 に答える 1

0

ルートを追加する必要があります:

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

コントローラー名をあなたのものに置き換えてください。

于 2012-11-05T20:49:41.907 に答える