gpt4 book ai didi

c# - 将创建的数据传递给另一个 Controller

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:13 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC Entity Framework ,并且我有一个要插入数据的页面

public ActionResult Create()
{
return View();
}

// POST: /Home/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="id,firstname,lastname,email,guests,guestfirstname,guestlastname,productInterest,occupancyTimeline,isInvestment,timeSlot,dateSlot")] CP_LC_Preview cp_lc_preview)
{
if (ModelState.IsValid)
{
db.Data.Add(cp_lc_preview);
db.SaveChanges();
return RedirectToAction("Confirm", new { info = cp_lc_preview });
}

return View(cp_lc_preview);
}

我想做的是获取刚刚输入的数据并将其传递给另一个 Controller 进行显示。就像一个确认页面。

这是我的确认页面方法

public ActionResult Confirm()
{
return View();
}

最佳答案

您可以考虑遵循 PRG 模式。

PRG 代表POST - REDIRECT - GET。使用这种方法,在成功保存数据后,您将发出一个在查询字符串中具有唯一 ID 的重定向响应,使用它,第二个 GET 操作方法可以再次查询资源并将某些内容返回给 View 。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="id,firstname,lastname,email,guests,guestfirstname,guestlastname,productInterest,occupancyTimeline,isInvestment,timeSlot,dateSlot")] CP_LC_Preview cp_lc_preview)
{
if (ModelState.IsValid)
{
db.Data.Add(cp_lc_preview);
db.SaveChanges();
var id = cp_lc_preview.Id;
return RedirectToAction("Confirm", new { id = id });
}
return View(cp_lc_preview);
}

并且在您的 Confirm 操作方法中,具有 id 参数并使用该参数的值再次从数据库中读取记录并根据需要使用。

public ActionResult Confirm(int id)
{
var d = db.Data.FirstOrDefault(g=>g.Id==id);
// Use d as needed
// to do : Return something
}

临时数据

如果您不希望在 url 中包含此 id,请考虑使用 TempData 来传递数据。但是 TempData 的生命周期很短。一旦读取,数据就消失了。 TempData 在后台使用 Session 来存储数据。

TempData["NewItem"] = cp_lc_preview;
return RedirectToAction("Confirm", "controllerName");

并在 Confirm 方法中

public ActionResult actionname()
{
var model=TempData["NewItem"] as CP_LC_Preview
// to do : Return something
}

供您引用

How do I include a model with a RedirectToAction?

关于c# - 将创建的数据传递给另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39296012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com