【发布时间】:2014-04-24 13:31:57
【问题描述】:
很抱歉,标题可能提供的信息不足,但我不知道如何解释我想在问题中做什么。
所以,我有一个 MVC 应用程序,我正在从 Web.config 的配置部分加载我的路由。
为了从配置的元素中封装我需要的所有信息,我创建了一个 RouteModel。
IEnumerable<RouteModel> configuredRoutes = RoutingFacade.GetAllRoutes();
foreach(RouteModel route in configuredRoutes)
{
routes.MapRoute(route.Name, route.Url,
new { controller = "Home", action = "Index", managers = route.Managers });
}
忽略那边的 manager 键。
到目前为止一切顺利,但我的问题是这个。
我的RouteModel 有一个Constraints 属性,该属性返回一个List<ConstraintModel>,其中包含该路由的所有配置约束。ConstraintModel 只有两个属性,Name 和Value。
您可能知道,MapRoute 方法需要一个额外的 object 参数,这是约束,这个对象的构造如下:
new { constraint1 = value1, constraint2 = value2, .. }
我怎样才能把我的List<ConstraintModel> 变成这样的东西?
非常感谢您花时间阅读我的问题,非常感谢您
【问题讨论】:
-
您需要问自己的问题是,这将如何出现在查询字符串中。查询字符串是简单的名称:值字符串。所以你不能在查询字符串中表示一个复杂的对象,所以你不能将它传递给动作(无论如何都不能作为 GET)。 POST 是不同的。这是 GET 还是 POST 或两者兼而有之?
-
很抱歉,我不理解您的担忧,但 HTTP 方法将是一个 GET :)
标签: c# asp.net .net asp.net-mvc visual-studio