У меня возникла странная проблема с методом ActionLink в ASP.NET MVC Beta. При использовании перегрузки Lambda из фьючерсов MVC я не могу указать параметр, извлеченный из 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. Было отмечено, что это работает для некоторых людей. Поскольку это не работает для меня, это заставляет меня думать, что это что-то конкретное для того, что я делаю. У кого-нибудь есть какие-либо предложения о том, на что посмотреть дальше, потому что этот действительно поставил меня в тупик.