I want to have different sorting and filtering applied on my view I figured that I’ll be passing sorting and filtering params through query string:
@Html.ActionLink('Name', 'Index', new { SortBy= 'Name'})
This simple construction allows me to sort. View comes back with this in query string:
?SortBy=Name
Now I want to add filtering and i want my query string to end up with
?SortBy=Name&Filter=Something
How can I add another parameter to list of already existing ones in ActionLink? for Example:
user requests /Index/
view has
@Html.ActionLink('Name', 'Index', new { SortBy= 'Name'})
and
@Html.ActionLink('Name', 'Index', new { FilterBy= 'Name'})
Links: The first one looks like /Index/?SortBy=Name and The second is /Index/?FilterBy=Name
I want when user pressed sorting link after he applied some filtering – filtering is not lost, so i need a way to combine my params. My guess is there should be a way to not parse query string, but get collection of parameters from some MVC object.
so far the best way I figured out is to create a copy of
ViewContext.RouteData.Valuesand inject QueryString values into it. and then modify it before everyActionLinkusage. still trying to figure out how to use.Union()instead of modifying a dictionary all the time.