升级到Beta 1后的奇怪的Html.ActionLink()行为

时间:2008-12-18 18:40:14

标签: asp.net-mvc routes html-helper

我升级了一个大型的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") %>

非常感谢任何帮助!

1 个答案:

答案 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找到了签名。