0

我有一个视图,其中有两种形式,用于声明每页的行。在后期操作中,我需要我的 Url 相同,只需添加新参数。现在我这样使用:

[HttpPost]
public ActionResult Index(FormCollection collection) {

    //Calculate Row Count

    return RedirectToAction("Index", new { RC = RowCount });

   }

有了这个实现,我的所有参数都丢失了,只是RC = rowcountnumber被替换了。如何保留参数并添加新参数RC?最快的方法是什么?这里有任何性能问题吗?

4

3 回答 3

0

检查这个,我不确定是最快的还是关于性能问题,但工作:

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);
于 2012-04-21T14:08:08.033 回答
0

不幸的是,我现在无法对其进行测试,但我怀疑这会起作用(尽管它确实会改变集合参数)。它会表现良好,因为它不会复制旧集合中的任何项目;只需向其中添加一项。

    [HttpPost]
    public ActionResult Index(FormCollection collection)
    {
        //Calculate Row Count
        collection.Add("RC", RowCount);
        return RedirectToAction("Index", collection);
    }
于 2012-04-21T20:41:09.957 回答
0

制作表单GET不是POST因为请求没有改变服务器上的任何东西,所以GET动词更合适,而且GET动词会将所有表单值作为查询字符串参数传递,这样你就会得到想要的效果

在第三个参数中做到这一点Html.BeginForm应该是FormMethod.Get

于 2012-04-23T12:35:58.150 回答