gpt4 book ai didi

c# - 在 catch block 中的 RedirectToAction 之后,TempData 为空。可能是什么原因?

转载 作者:太空狗 更新时间:2023-10-29 23:51:10 25 4
gpt4 key购买 nike

我已经使用 TempData 很长时间了,我遇到了一个奇怪的问题。我有基本场景:

[HttpPost]
public ActionResult Create(ProductCreateModel newProduct)
{
// create and save product to db

// try upload product to external site
try { UploadProductToEbay(newProduct); }
catch {
TempData["error"] = "error";
return RedirectToAction("Edit", newProduct.Id);
}
...
}

[HttpGet]
public ActionResult Edit(int Id)
{
var error = TempData["error"]; // at this point temp data collection is empty and have no idea why
...
}

当上传失败并执行 return RedirectToAction("Edit", newProduct.Id); 行时会发生此问题。丢失临时数据值的不是很明显的原因是什么?

更新:当我使用

TempData["error"] = "error";
RedirectToAction(...);

catch block 之外一切正常,临时数据值被传输到 Edit 操作。

最佳答案

看来问题出在 return RedirectToAction("Edit", newProduct.Id); 语句中。
试试这个语句 return RedirectToAction("Edit", new{Id=newProduct.Id});
路由参数是object类型,你传递的是int

关于c# - 在 catch block 中的 RedirectToAction 之后,TempData 为空。可能是什么原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218433/

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