C# 令人费解的。。。为什么在ASP.NET MVC中,我的大多数链接都附加了Length=4?
为什么会出现以下代码:C# 令人费解的。。。为什么在ASP.NET MVC中,我的大多数链接都附加了Length=4?,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,为什么会出现以下代码: <%= Html.ActionLink("[Click Here For More +]", "Work", "Home", new { @class = "more" }) %> 渲染为: <a class="more" href="/Home/Work?Length=4">[Click Here For More +]</a> “长度=4”是从哪里来的 更新 如果我删除新的{@class=“more”},我就不会得到L
<%= Html.ActionLink("[Click Here For More +]", "Work", "Home", new { @class = "more" }) %>
渲染为:
<a class="more" href="/Home/Work?Length=4">[Click Here For More +]</a>
“长度=4”是从哪里来的
更新
如果我删除
新的{@class=“more”}
,我就不会得到Length=4参数。您的一条路由中是否有默认的“Length”值?如果选择了错误的路由,请使用Html.RouteLink而不是ActionLink。看起来像DebuggerVisualizer属性!但这不应该浮出水面
总之,“Length=4”看起来像一个数组(有4个元素)。使用调试器查找罪魁祸首。我查看了ActionLink的重载,并将代码更改为:
<%= Html.ActionLink("[Click Here For More +]", "Work", "Home", null, new { @class = "more" }) %>
为路由值添加了一个“null”。这似乎奏效了。不确定这会影响什么。我以前也有过这种情况。如果你看看你实际使用的重载,它可能不是你想要的 试试看
<%= Html.ActionLink("[Click Here For More +]", "Work", "Home", null, new { @class = "more" }) %>
长度=4的问题已经出现了好几次。罪魁祸首通常是一条糟糕的路线,无论是在定义上还是在我使用的链接上
我养成了一个习惯,总是先仔细检查一下这些东西。好主意!IIRC匿名类型被转换成字典。也实现了这一点!是的,这让我抓狂了大约一个小时,然后它击中了我。