0

ページごとに行を宣言するための2つのフォームのビューがあります。ポスト アクションでは、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

リクエストがサーバー上で何も変更していGETないためフォームを作成しないため、動詞の方が適切です。動詞はすべてのフォーム値をクエリ文字列パラメーターとして渡すため、目的の効果が得られますPOSTGETGET

Html.BeginForm3番目のパラメーターでそれを行うには、次のようにする必要がありますFormMethod.Get

于 2012-04-23T12:35:58.150 に答える
0

残念ながら、今はテストできませんが、これはうまくいくと思います (ただし、コレクション パラメーターは変更されます)。また、古いコレクションからアイテムをコピーしていないため、うまく機能します。それに1つのアイテムを追加するだけです。

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