在ActionLink中返回查询字符串

时间:2012-12-25 11:18:41

标签: asp.net-mvc asp.net-mvc-3

您好我正在尝试将查询字符串传递给链接,我已经这样写了:

@Html.ActionLink(subcategory,"Index" , "Products" , new { category = subcategory})

我写它的方式我收到了这个,似乎它无法识别actionName:

http://localhost:2100/?Length=8

如果删除新的{category = subcategory},我会得到:

http://localhost:2100/Products

我希望ActionLInk做的是返回这样的内容:

http://localhost:2100/Products/Index?substring=9

1 个答案:

答案 0 :(得分:3)

您正在使用Html.ActionLink的{​​{3}}。这就是为什么第3个参数"Products"被解释为在网址中产生?Length=8的路由值。

作为旁注:Length=8来自string类型,其中有一个属性Length"Products"字符串的长度为8。

所以你只需要使用wrong overload

@Html.ActionLink(subcategory, //link text
                 "Index", //action name
                 "Products", //controller name
                 new { category = subcategory}, //route values
                 null // html attributes
                )