RouteValues vs QueryString MVC?

Moh*_*yan 7 c# asp.net-mvc routes

请告诉我之间的差异QueryStringRequestRouteData.Values
我们可以使用它们吗?

Mar*_*usz 13

仅当在global.asax中定义时才从查询字符串收集RouteValues,例如:

routes.MapRoute(
 "Example", // Route name
 "{controller}/{action}/{id}/{inRouteValues}", // URL with parameters
 new { controller = "Home", action = "Index" } // Parameter defaults
 );
Run Code Online (Sandbox Code Playgroud)

将赶上从inRouteValues yourdomain/testController/testAction/14/myTestValue 其中RouteData.Values["inRouteValues"]将字符串值"myTestValue".
但是,如果你将构建URL,就像yourdomain/testController/testAction/14?inRouteValues=myTestValue它不会得到它.所以区别在于,RouteData.Values只从与RouteCollectionglobal.asax 匹配的URL中获取值,并且QueryString如果它匹配变量名,将捕获查询字符串中的每个值.