我有一个MVC2项目,我希望默认路由将查询参数传递给默认操作。
现在我有这样的路线
routes.MapRoute(
"Default", // Route name
"", // URL pattern
new { controller = "Search", action = "Index" }
);
如果我现在转到http://mysite
,它已正确路由到搜索控制器上的“索引”操作,但是如果输入http://mysite?theme=yellow
,则theme
参数不会传递给同一个动作。
如何创建传递任何给定查询参数的默认路由?
答案 0 :(得分:1)
路由与查询参数无关。可以从与url模式匹配的控制器访问它们。
所以,"{controller}/{action}/{id}", // URL pattern
应该足够了
在控制器中,您可以通过Request属性查询参数:
var theme = Request["theme"];
或者如果您愿意,可以明确:
var theme = Request.QueryString["theme"];