【问题标题】:Strange Html.ActionLink() Behavior after Upgrade to Beta 1升级到 Beta 1 后的奇怪 Html.ActionLink() 行为
【发布时间】:2008-12-18 18:40:14
【问题描述】:

我今天将我一直在开发的一个大型 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") %>

任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    通过查看 ActionLink 上的方法签名,它们看起来已经发生了变化,并且与以下内容匹配:

    ActionLink( string linkText, string action,
                object values, object htmlAttributes );
    

    我会尝试在那些不起作用的末尾添加一个空 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 服务器在 2008 年 12 月 18 日下午 1:16 CST 此刻似乎已关闭)。我通过智能感知找到了签名。

    【讨论】:

    • 就是这样!我应该检查一下,因为现在这种行为非常有意义。该死的,那会很不方便......非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    相关资源
    最近更新 更多