我升级了一个大型的ASP.NET MVC应用程序,我今天一直在努力进行最新的测试,在经历了一些初步的问题之后,我已经把它重新开始了。最大的问题是我有这样的事情:
<%= Html.ActionLink("LOGIN", "Index", "Authorization", new { redirect=Request.Url })%>
和
<%= Html.ActionLink("Edit this page", "Edit", "Webpages", new { id = wp.Id })%>
将链接呈现为:
http://localhost:60321/calendar/edit?Length=8
虽然有不同的“长度”。我不知道为什么会这样;就好像我的路线表完全疯了一样。 “calendar / edit / {id}”是一个有效的路线,但它是关于列表中的第四个。这些之前完美无缺。
我在这里试图弄清楚发生了什么......我的智慧结束了......链接文字完美呈现;它只是一些的ActionLink调用的url我没有工作。其中一些工作正常。这是一个工作正常的例子:
<%= Html.ActionLink("ADMIN", "Index", "ControlPanel") %>
非常感谢任何帮助!
答案 0 :(得分:2)
通过查看ActionLink上的方法签名,它们看起来已经改变,并且匹配以下内容:
ActionLink( string linkText, string action,
object values, object htmlAttributes );
我会尝试将null htmlAttributes添加到那些不起作用的末尾,以便它使用这个:
ActionLink( string linkText, string action, string controller,
object values, object htmlAttributes );
这看起来像是:
<%= Html.ActionLink("LOGIN",
"Index",
"Authorization",
new { redirect=Request.Url },
null )%>
MVC Beta 1的源代码位于http://www.codeplex.com/aspnet(SCC服务器此时显示为12/18/2008 1:16Pm CST)。我通过intellisense找到了签名。