ASP.NET MVC ベータ版の ActionLink メソッドで奇妙な問題が発生しました。MVC フューチャーから Lambda オーバーロードを使用する場合、ViewData から取得したパラメーターを指定できないようです。
これを試すと:
<%= Html.ActionLink<PhotoController>(p => p.Upload(((string)ViewData["groupName"])), "upload new photo") %>
HTML に URL が空のリンクが含まれています。
<a href="">upload new photo</a>
ただし、次のようにパラメーターをハードコーディングすると、次のようになります。
<%= Html.ActionLink<PhotoController>(p => p.Upload("groupA"), "upload new photo") %>
出力には実際の URL が含まれています。
<a href="/group/groupA/Photo/Upload">upload new photo</a>
これはおそらく ViewData の可視性と可用性に関係しており、Lambda がフレームワークの内部によって評価されるときに存在しないと思います。しかし、それは単なる推測です。
これを引き起こすために最初のサンプルで何か間違ったことをしているのですか、それともバグではありませんか?
更新: MVC フューチャーの最新バージョンを使用しています。これは一部の人に有効であることが指摘されています。私にはうまくいかないので、これは私がやっていることに特有のものだと思います。これは本当に困惑しているので、次に何を見るべきかについて誰か提案はありますか.