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??