У меня есть частичное представление для отображения списка элементов, я использую это частичное представление в нескольких разных местах.В этом частичном представлении я использую paginator -
@Html.PagedListPager(Model, page => Url.Action(null, new { page = page }))
Это приводит к тому, что paginator показывает URL страницы для любого действия и вида, на которые я уже смотрю.страница Я использую строку запроса для строки поиска, а метод Url.Action не включает существующие параметры строки запроса.
Вместо / Search? s = bla & page = 3 Я получаю / Search? page = 3
Как создать URL-адрес с использованием существующей строки запроса?
Редактировать:
Вот мой код
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(
"Search",
new SearchRoute("Search", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(
new { controller = "Search", action = "Index" })
});
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Call", action = "Index", id = UrlParameter.Optional }
);
}
public class SearchRoute : Route
{
public SearchRoute(string url, IRouteHandler routeHandler)
: base(url, routeHandler)
{
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
System.Diagnostics.Debug.WriteLine(Url);
if (HttpContext.Current != null)
{
string s = HttpContext.Current.Request.QueryString["s"];
if (!string.IsNullOrEmpty(s))
values.Add("s", s);
}
return base.GetVirtualPath(requestContext, values);
}
}