I was wondering whether there is a way to create an ActionLink
or similar, that changes only a few parameters of the actual query, and keeps all the other parameters intact. For example if I'm on an URL like http://example.com/Posts/Index?Page=5&OrderBy=Name&OrderDesc=True
I want to change only the Page
, or OrderBy
parameter and keep all other parameters the same, even those I don't yet know of (like when I want to add a Search
parameter or something similar too).
The header of my current action looks like this:
public ActionResult Index(int? Page, string OrderBy, bool? Desc)
and I'm only interested in the values that this controller "eats". I want however that when I extend this action (for example with a string Search
parameter) the links should work the same way as before.
Here is what I did already:
RouteValueDictionary
and fill it with everything from RouteData.Values
Page
) to the controller are lost HttpContext.Request.QueryString
to the previous dictionary
HttpContext.Request.Params
RouteValueDictionary
that is passed to an ActionLink
So the questions:
RVD
that has all the data that was passed to the Controller and was used by it? Params
object? EDIT: Checked the RouteData.DataTokens
variable, but it's usually empty, and doesn't contain everything I need. It seems to only contain parameters that are needed for the routing somewhere, but not all of the parameters.
Have a look in RouteData.DataTokens
.
RouteData.DataTokens @ MSDN documentation :
Gets a collection of custom values that are passed to the route handler but are not used when ASP.NET routing determines whether the route matches a request.
HTHs,
Charles
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.