如何在MVC默认路由中传递查询参数?

时间:2011-09-28 07:47:39

标签: asp.net-mvc

我有一个MVC2项目,我希望默认路由将查询参数传递给默认操作。

现在我有这样的路线

routes.MapRoute(
     "Default", // Route name
     "", // URL pattern
     new { controller = "Search", action = "Index" }
);

如果我现在转到http://mysite,它已正确路由到搜索控制器上的“索引”操作,但是如果输入http://mysite?theme=yellow,则theme参数不会传递给同一个动作。

如何创建传递任何给定查询参数的默认路由?

1 个答案:

答案 0 :(得分:1)

路由与查询参数无关。可以从与url模式匹配的控制器访问它们。

所以,"{controller}/{action}/{id}", // URL pattern应该足够了

在控制器中,您可以通过Request属性查询参数:

var theme = Request["theme"];

或者如果您愿意,可以明确:

var theme = Request.QueryString["theme"];