Sae*_*eid 9 c# asp.net-mvc dynamic anonymous-types asp.net-mvc-3
假设我们有一个页面,其中包含一些支持从DB搜索的元素,因此在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 });
Run Code Online (Sandbox Code Playgroud)
那么有没有办法routeValues动态定义类似下面的伪代码:
var dynamicRoutValues;
foreach(Parameter item in SearchParameters) {
dynamicRoutValues.Add(item.Name, item.Value)
}
return RedirectToAction("Index", dynamicRoutValues);
Run Code Online (Sandbox Code Playgroud)
Jon*_*Jon 18
你可以使用RouteValueDictionary:
var dynamicRoutValues = new RouteValueDictionary();
foreach(Parameter item in SearchParameters) {
dynamicRoutValues[item.Name] = item.Value;
}
return RedirectToAction("Index", dynamicRoutValues);
Run Code Online (Sandbox Code Playgroud)
如果已SearchParameters实现,IDictionary<string, object>则可以将其直接传递给RouteValueDictionary构造函数:
return RedirectToAction("Index", new RouteValueDictionary(SearchParameters));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3587 次 |
| 最近记录: |