我已经建立了一个 ASP.NET MVC 项目,一切都很好,但我确实有一个路由问题。我的 Global.asax 看起来像这样:
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
所以,没有什么不寻常的。我的问题是,当我使用 HTML.ActionLink 链接到控制器/动作/参数时,如下所示:
<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>
它应该生成(至少在我看来是有意义的)一个链接,例如:http://www.localhost/SomeController/SomeAction/someParam
.
但相反,它会生成这样的链接:http://localhost/SomeController/SomeAction?param=someParam
如果我手动创建链接到预期结果(SomeController/SomeAction/someParam)的链接,则调用正确的控制器和操作,但操作方法中定义的参数始终为空。
有任何想法吗?