Làm sao để mở rộng hàm Request.QueryString thành Request.QueryString.ToRouteValues

Mình đang bị lỗi là muốn sử dụng @Url.Action(“Index”,“Home”) nhưng đồng thời cũng muốn truyền thêm vào tất các các QueryString đang có trên url mà không cần phải gọi chính xác nó ra như Request.QueryString[“param1”].

https://daynhauhoc.com/c/programming=abc&type=java

Thì mình có thử nhiều cách nhưng vẫn không được như là:
@Url.Action("Index","Home", new {Request.QueryString})
Dùng cách này là xuất ra tự động là
https://daynhauhoc.com/c/QueryString=programming%abc&type%java

Bị sai mất rồi.

Tìm trên stackoverflow thì có thấy cách này là mở rộng thêm 1 method(k biết nói v đúng không) là sử dụng được nhưng mình không biết cách để viết thêm nó ở đâu để gọi ra được

I’m building an url using the method:

Url.Action(“action”, “controller”);
I like to pass the querystring for the current request into that url as well. Something like the following (but it doesn’t work):

Url.Action(“action”, “controller”, Request.QueryString);
Converting the QueryString to routevalues is possible with the following extension:

public static RouteValueDictionary ToRouteValues(this NameValueCollection queryString)
{
    if (queryString.IsNull() || queryString.HasKeys() == false) return new RouteValueDictionary();

    var routeValues = new RouteValueDictionary();
    foreach (string key in queryString.AllKeys)
        routeValues.Add(key, queryString[key]);

    return routeValues;
}

With the extension method the following does work:

Url.Action(“action”, “controller”, Request.QueryString.ToRouteValues());
Is there an other better way ? Thx

Mong mọi người giúp đỡ, mình phải viết thêm method public static RouteValueDictionary ToRouteValues(this NameValueCollection queryString) ở đâu vậy??

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?