gpt4 book ai didi

c# - post 方法中的 MVC3 RedirectToAction 和 ViewBag 抑制

转载 作者:可可西里 更新时间:2023-11-01 08:14:06 26 4
gpt4 key购买 nike

我目前正在处理我需要在表示列表的 View 中显示的数据列表,并为每个项目显示可以执行的相应操作,例如编辑它们或删除它们。对于版本来说,承认它是一个特定的 View 没有问题。我的问题是当我想删除一个项目时,我在 post 方法中有两个选择。

 //Call directly the list 
[HttpPost]
[Authorize]
public ActionResult Delete(int itemId)
{
// logic to delete an item
ViewBag.Error = ""; // The result of the execution
return List();
}

这个解决方案的问题是 url 不再与第一个相同:.../List,现在是 .../Delete,我觉得这个解决方案不太好,另一个解决方案是重定向到操作,现在 url 很好,但是 viewBag 中的错误消息不再可见,你们有更好的主意吗?

最佳答案

您可以使用 TempData 在一个请求中保留信息,它就是为这个确切的用例而设计的。不要使用 ViewBag,而是使用 TempData["Error"] = "";。然后,在接收端您将获得如下代码片段:

[HttpGet]
public ActionResult List() {
ViewBag.Error = TempData["Error"];
// ...
return View();
}

参见 ASP.NET TempData persists between requestsWhen to use ViewBag, ViewData, or TempData in ASP.Net MVC 3 .

关于c# - post 方法中的 MVC3 RedirectToAction 和 ViewBag 抑制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124277/

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