在 MVC 3 中以编程方式创建 routeValues(匿名类型 ASP.NET
本文关键字:类型 NET ASP routeValues 创建 MVC 方式 编程 | 更新日期: 2023-09-27 18:32:00
>假设我们有一个页面,其中包含一些元素以支持从数据库搜索,因此在 Post Action 中,我们需要找到哪些元素处于活动状态,并据此创建路由值,如下所示:
List<Parameter> SearchParameters = GetFilterParameters(collection);
if(SearchParameters.Count > 0)
foreach(Parameter item in SearchParameters) {
switch(item.Name) {
case "Category":
CategoryValue= item.Value;
break;
case "StartDate":
StartDateValue= item.Value;
break;
case "Product":
ProductValue= item.Value;
break;
}
return RedirectToAction("Index", new {category = CategoryValue, startdate=StartDateValue, product=ProductValue });
那么有没有办法动态定义routeValues
类似于以下伪代码的东西:
var dynamicRoutValues;
foreach(Parameter item in SearchParameters) {
dynamicRoutValues.Add(item.Name, item.Value)
}
return RedirectToAction("Index", dynamicRoutValues);
您可以使用RouteValueDictionary
:
var dynamicRoutValues = new RouteValueDictionary();
foreach(Parameter item in SearchParameters) {
dynamicRoutValues[item.Name] = item.Value;
}
return RedirectToAction("Index", dynamicRoutValues);
如果SearchParameters
实现IDictionary<string, object>
那么您可以将其直接传递给RouteValueDictionary
构造函数:
return RedirectToAction("Index", new RouteValueDictionary(SearchParameters));