我在 ASP.NET MVC Beta 中的 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 期货。有人指出,这对某些人有效。由于它对我不起作用,这让我认为这是我正在做的事情。有没有人对接下来要看什么有任何建议,因为这个真的让我很难过。