1. ホーム
  2. asp.net-mvc

[解決済み] RedirectToActionのパラメータとしてmodelを渡すことはできますか?

2022-02-14 21:11:58

質問

このような場合、どのようにすればよいのでしょうか? Model をパラメータとして RedirectToAction

例として

public class Student{
    public int Id{get;set;}
    public string Name{get;set;}
}

コントローラ

public class StudentController : Controller
{
    public ActionResult FillStudent()
    {
        return View();
    }
    [HttpPost]
    public ActionResult FillStudent(Student student1)
    {
        return RedirectToAction("GetStudent","Student",new{student=student1});
    }
    public ActionResult GetStudent(Student student)
    {
        return View();
    }
}

私の質問 - RedirectToActionでstudentモデルを渡すことはできますか?

どのように解決するのですか?

使用方法 TempData

あるリクエストから次のリクエストまで持続するデータのセットを表します。 次

[HttpPost]
public ActionResult FillStudent(Student student1)
{
    TempData["student"]= new Student();
    return RedirectToAction("GetStudent","Student");
}

[HttpGet]
public ActionResult GetStudent(Student passedStd)
{
    Student std=(Student)TempData["student"];
    return View();
}

代替方法 クエリ文字列でデータを渡す

return RedirectToAction("GetStudent","Student", new {Name="John", Class="clsz"});

これは、次のようなGETリクエストを生成します。 Student/GetStudent?Name=John & Class=clsz

リダイレクト先となるメソッドが [HttpGet] として 上記の RedirectToAction は、GET リクエストに http ステータス コード 302 Found (URLリダイレクトの一般的な実行方法)