【发布时间】:2009-03-03 19:34:44
【问题描述】:
我已经建立了一个 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)的链接,则调用正确的控制器和动作,但动作方法中定义的参数始终为空。
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing