14

RedirectToAction メソッドから複数のパラメータを渡したい

どうすれば合格できますか?

私のワンアクションメソッド

 [HttpPost, ActionName("SelectQuestion")]
    public ActionResult SelectQuestion(string email,List<QuestionClass.Tabelfields> model)
    {

        List<QuestionClass.Tabelfields> fadd = new List<QuestionClass.Tabelfields>();
        for (int i = 0; i < model.Count; i++)
        {
            if (model[i].SelectedCheckbox == true)
            {
                List<QuestionClass.Tabelfields> f = new List<QuestionClass.Tabelfields>();
                fadd.Add(model[i]);
            }
        }

        return RedirectToAction("Question", new { email = email, model = fadd.ToList() });
    }

私の別のアクションメソッド

    [HttpGet]
    public ActionResult Question(string email,List<QuestionClass.Tabelfields> model)
    {
    }

modelで値を取得していません。

4

4 に答える 4

24

リダイレクト時に複雑なオブジェクトのコレクションを URL で渡すことはできません。

1 つの可能性は、TempData を使用することです。

TempData["list"] = fadd.ToList();
return RedirectToAction("Question", new { email = email});

次に、質問アクション内で:

var model = TempData["list"] as List<QuestionClass.Tablefields>;
于 2012-08-24T12:22:52.337 に答える
4

これはおそらくもうアクティブではありませんが、他の誰かを助けるために私が行った方法をここに残します.

RedirectToAction の代わりに単純な Redirect を使用してこれを解決しました。

List<int> myList = myListofItems;
var list = HttpUtility.ParseQueryString("");
myList.ForEach(x => list.Add("parameterList", x.ToString()));
return Redirect("/MyPath?" + list);

次に、他の方法で:

public ActionResult Action(List<int> parameterList){}
于 2015-08-05T20:58:46.113 に答える
3

RedirectToActionmethod HTTP 302 応答をブラウザーに返します。これにより、ブラウザーは指定されたアクションに対してGET要求を行います。

TempData/のような一時ストレージにデータを保持する必要がありますSession。TempData は、バッキング ストレージとして Session を使用します。

実際のステートレスを維持したい場合は、クエリ文字列に ID を渡し、GETアクションでアイテムのリストをフェッチする必要があります。まさに無国籍。

return RedirectToAction("Question", new { email = email,id=model.ID });

そしてあなたのGETメソッドで

public ActionResult Question(string email,int id)
{

   List<QuestionClass.Tabelfields> fadd=repositary.GetTabelFieldsFromID(id);
    //Do whatever with this
   return View();
}

Idからのrepositary.GetTabelFieldsFromIDリストを返すと仮定しますTabelFields

于 2012-08-24T12:36:11.143 に答える