QueryStringRequest 中的 RouteData.Values 有什么区别?

我们可以用它们代替吗?

最佳答案

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

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

将从 yourdomain/testController/testAction/14/myTestValue 中捕获 inRouteValues
其中 RouteData.Values["inRouteValues"] 将是值为“myTestValue”的字符串。但是如果你构建像 yourdomain/testController/testAction/14?inRouteValues=myTestValue 这样的 URL,它就不会得到它。因此,不同之处在于 RouteData.Values 将仅从与 global.asax 中的 RouteCollection 匹配的 URL 中获取值,而 QueryString 将从您的查询字符串中捕获每个值(如果它与变量名称匹配)。

10-08 19:00