Beispiel #1
0
        /// <summary>
        /// 生成页面的Url
        /// </summary>
        /// <param name="param"></param>
        /// <param name="value"></param>
        /// <returns>navigated url for pager item</returns>
        public static string GenerateUrl(this HtmlHelper html, string param, string value)
        {
            var routeValues = new RouteValueDictionary(html.ViewContext.RouteData.Values);

            var rq = HttpContext.Current.Request.QueryString;

            if (rq != null && rq.Count > 0)
            {
                foreach (string key in rq.Keys)
                {
                    if (key != param && string.IsNullOrEmpty(rq[key]) == false && rq[key] != ",")
                    {
                        if (rq[key].IndexOf(",") > -1)
                        {
                            routeValues.AddArrayValue(rq[key].Split(','), key);
                        }
                        else
                        {
                            routeValues[key] = rq[key];
                        }
                    }
                }
            }

            routeValues[param] = value;
            // Add action
            //routeValues["action"] = html.ViewContext.RouteData.Values["action"];
            // Add controller
            //routeValues["controller"] = html.ViewContext.RouteData.Values["controller"];

            // Return link
            var urlHelper = new UrlHelper(html.ViewContext.RequestContext);

            //if (!string.IsNullOrEmpty(_routeName))
            //    return urlHelper.RouteUrl(_routeName, routeValues);
            return(urlHelper.RouteUrl(routeValues));
        }