2016-04-06 15 views
2

Ich habe diese Aktion Methode:Aktion verwenden Variablenwert für Parameternamen

public IActionResult SearchHeader(string query, string filter) 
{ 
    return RedirectToAction("Search", new { filter = query }); 
} 

Außer anstelle des Parameters auf die Search geleitet wird action methodfilter genannt zu werden, ich brauche es die value der filter Variable aufgerufen werden in die SearchHeaderaction method übergeben ... wie mache ich es?

Zum Beispiel, wenn der Wert von filterName ist und der Wert von query ist Bob dann habe ich es zu routen will

.../Search/?Name=Bob 

Antwort

4

Es sieht aus wie Sie den String-Wert von filter wollen in der Route verwendet werden , nicht den Literalwert "filter", den Ihr aktueller Code tut.

, das zu tun, können Sie die RedirectToAction() Überlastung verwenden, die eine RouteValueDictionary und füllen Sie das Wörterbuch Schlüssel filter mit query nimmt:

var dictionary = new RouteValueDictionary(); 
dictionary[filter] = query; 
return RedirectToAction("Search", dictionary);