Supponiamo di disporre di una pagina che include alcuni elementi per supportare la ricerca dal DB, quindi in Post azione dobbiamo trovare quali elementi sono attivi e in base a tale creare i valori del percorso qualcosa di simile:Crea routeValues (tipo anonimo) a livello di codice in ASP.NET MVC 3
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 });
Quindi non v'è alcun modo per definire dinamicamente routeValues
qualcosa, come i seguenti pseudo-codice:
var dynamicRoutValues;
foreach(Parameter item in SearchParameters) {
dynamicRoutValues.Add(item.Name, item.Value)
}
return RedirectToAction("Index", dynamicRoutValues);