【问题标题】:Puzzling ... why do most of my links, in ASP.NET MVC, have Length=4 appended to them?令人费解......为什么我在 ASP.NET MVC 中的大多数链接都附加了 Length=4 ?
【发布时间】:2010-10-12 09:49:24
【问题描述】:

为什么会出现以下代码:

<%= Html.ActionLink("[Click Here For More +]", "Work", "Home", new { @class = "more" }) %>

渲染为:

<a class="more" href="/Home/Work?Length=4">[Click Here For More +]</a> 

“Length=4”是从哪里来的?

更新

如果我删除 new { @class = "more" },我不会得到 Length=4 参数。

【问题讨论】:

    标签: c# html asp.net-mvc


    【解决方案1】:

    我以前也遇到过这种情况。如果您查看实际使用的过载,它可能不是您想要的。

    试试……

    <%= Html.ActionLink("[Click Here For More +]", "Work", "Home", null, new { @class = "more" }) %>
    

    【讨论】:

    • 刚刚也意识到了这一点!
    • 是的,这让我发疯了大约一个小时,然后才击中我。
    【解决方案2】:

    我查看了 ActionLink 的重载并将代码更改为如下所示:

        <%= Html.ActionLink("[Click Here For More +]", "Work", "Home", null, new { @class = "more" }) %>
    

    为路由值添加了“null”。这似乎有效。不确定这可能会产生什么影响。

    【讨论】:

      【解决方案3】:

      您的其中一条路线是否有“长度”的默认值?如果选择了错误的路由,请使用 Html.RouteLink 而不是 ActionLink。

      【讨论】:

      • 好收获! IIRC 匿名类型被转换为字典。
      【解决方案4】:

      看起来像一个 DebuggerVisualizer 属性!但这不应该浮出水面。

      无论如何,'Length=4' 看起来有点像一个数组(有 4 个元素)。使用调试器查找罪魁祸首。

      【讨论】:

        【解决方案5】:

        length=4 的问题已经为我弹出了几次。罪魁祸首通常是一条糟糕的路线,无论是在定义中还是在我使用的链接中。

        我养成了总是先仔细检查这些的习惯。

        【讨论】:

          猜你喜欢
          • 2013-09-22
          • 2010-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-22
          • 1970-01-01
          • 2013-06-11
          • 1970-01-01
          相关资源
          最近更新 更多