我有一个反序列化这个xml的应用程序:
<SpecialRoutesList>
<SpecialRoutes>
<SpecialRoute>
<Name>TestRoute1</Name>
<Pattern>TestRouteUrl1</Pattern>
<Defaults>
<Controller>Home</Controller>
<Action>TestRoute1</Action>
<Params>
<Key>id</Key>
<Value>1</Value>
</Params>
</Defaults>
</SpecialRoute>
<SpecialRoute>
<Name>TestRoute2</Name>
<Pattern>TestRouteUrl2</Pattern>
<Defaults>
<Controller>Home</Controller>
<Action>TestRoute2</Action>
<Params>
<Key>id</Key>
<Value>1</Value>
</Params>
</Defaults>
</SpecialRoute>
</SpecialRoutes>
</SpecialRoutesList>
我有兴趣使用这个反序列化的信息来映射每条路线:
foreach(SpecialRoute route in SpecialRoutesList.SpecialRoutes) {
routes.MapRoute(route.Name, route.Pattern, new { ?????????? }, ????????);
}
要设置使用匿名类型所需的路由的默认值,那么如何使用这些匿名类型,在运行时从我的反序列化类获取键和值?
由于
此致
何
答案 0 :(得分:1)
routes.MapRoute()
从默认值构建RouteValueDictionary。因此,您可以从xml反序列化/构建Dictionary<string,object>
并将其传递给routes.MapRoute()
。与约束参数相同。
更新:默认构建为字典
var defaults = new Dictionary<string, object> {{"controller", "Account"}, {"action", "Login"}};
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
defaults
);