【问题标题】:Best way to add parameter to the current URL in ASP.NET MVC3在 ASP.NET MVC3 中向当前 URL 添加参数的最佳方法
【发布时间】:2012-05-03 18:19:12
【问题描述】:

我问了一个类似的问题here,我需要保留当前 URL 并为其添加新参数,唯一的答案(目前)是:

RouteValueDictionary rt = new RouteValueDictionary();
foreach(string item in Request.QueryString.AllKeys)
  rt.Add(item,    Request.QueryString.GetValues(item).FirstOrDefault());

rt.Add("RC", RowCount);
return RedirectToAction("Index", rt);

那么有没有其他方法可以避免重复Request.QueryString 而只是获取当前网址并添加新参数?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 url url-parameters routevalues


    【解决方案1】:

    您不需要迭代集合...您只需将参数附加到请求的 RawUrl:

        public ActionResult TestCurrentUrl(string foo)
        {
            var request = ControllerContext.HttpContext.Request;
    
            if (foo != "bar")
            {
                var url = request.RawUrl;
    
                if (request.QueryString.Count == 0)
                {
                    url += "?foo=bar";
                }
                else
                {
                    url += "&foo=bar";
                }
    
                return Redirect(url);
            }
    
            return Content(String.Format("Foo: {0}", foo));
        }
    

    【讨论】:

      猜你喜欢
      • 2014-11-28
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2011-04-11
      • 2013-08-07
      • 2012-04-18
      • 2010-09-08
      相关资源
      最近更新 更多