Nếu bạn đang cố gắng mở rộng phương pháp này:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues);
Mặc dù tôi chắc chắn rằng phần mở rộng đối tượng Khaja của sẽ làm việc, bạn có thể có được hiệu suất tốt hơn bằng cách tạo ra một RouteValueDictionary và đi qua trong đối tượng routeValues , thêm thông số bổ sung của bạn từ ngữ cảnh, sau đó quay trở lại bằng cách sử dụng quá tải ActionLink mất một RouteValueDictionary thay vì một đối tượng:
Điều này cần thực hiện thủ thuật:
public static MvcHtmlString MyLink(this HtmlHelper helper, string linkText, string actionName, object routeValues)
{
RouteValueDictionary routeValueDictionary = new RouteValueDictionary(routeValues);
// Add more parameters
foreach (string parameter in helper.ViewContext.RequestContext.HttpContext.Request.QueryString.AllKeys)
{
routeValueDictionary.Add(parameter, helper.ViewContext.RequestContext.HttpContext.Request.QueryString[parameter]);
}
return helper.ActionLink(linkText, actionName, routeValueDictionary);
}
Hoạt động như một sự quyến rũ, đây phải là câu trả lời được chấp nhận! BTW: Nếu bạn đang sử dụng quá tải đối tượng của ActionLink() cho đến nay, bạn phải bọc htmlAttributes với HtmlHelper.AnonymousObjectToHtmlAttributes (htmlAttributes) để gọi quá tải chính xác! –