asp.net mvc 3,需要帮助来映射路线

时间:2012-02-01 02:05:17

标签: asp.net asp.net-mvc-3 url-routing routes

这是我要映射的网址,http://localhost/tool/votetool/123/up

        routes.MapRoute(
            "", // Route name
            "{controller}/{action}/{toolId}/{vote}", // URL with parameters
            new { controller = "Tool", action = "VoteTool", toolId = UrlParameter.Optional, vote = UrlParameter.Optional }, // Parameter defaults
            new { vote = "up|down"}
        );

在我的页面中,我使用html.actionlink生成URL。

@Html.ActionLink("ThumbUp", "VoteTool", "Tool", new { toolId = Model.Tool.Id, vote = "up" })

而是获取与此类似的网址:http://localhost/tool/votetool/123/up

这是我得到的网址:

http://localhost:60627/Tool/VoteTool?Length=4

为什么我得到长度= 4 ???

1 个答案:

答案 0 :(得分:2)

您正在调用(linkText, actionName, routeValues, htmlAttributes)的{​​{1}}重载。

因此,它将ActionLink视为一组路由参数,并读取"Tool"类(String)的唯一属性。