gpt4 book ai didi

asp.net-mvc - 表单发布后如何保存 ViewBag 数据?

转载 作者:行者123 更新时间:2023-12-04 06:23:20 26 4
gpt4 key购买 nike

所以我有一个 ViewBag.Something并且这个数据是随机生成的。在我看来,我将它设置为这样的标签 @Html.LabelFor(m => m.Something, (string)ViewBag.Something) .这很好,但是当我提交表单时可能会出现错误,如果有错误,我需要这个标签保持不变,我不再想要动态/随机数据,所以我不会调用生成的 Controller 方法这个 ViewBag。有没有办法在我的 Controller 中没有一些私有(private)变量的情况下保留这个值? MVC/Razor 的一些好方法?

最佳答案

选项1:

使用路由值将“ViewBag.Something”的值传递给 Controller ​​:

@Html.ActionLink("ButtonText", "ActionName", new { Something = @ViewBag.Something })

选项 2:
您可以使用 临时数据 .
public ActionResult Index()
{
var Something = "YOURVALUE";
TempData["Something"] = Something;
.......
}


public ActionResult OtherAction()
{
var Something = TempData["Something "];
...........
}

在操作方法之间传递状态

操作方法可能必须将数据传递给另一个操作,例如,如果在发布表单时发生错误,或者该方法必须重定向到其他方法,例如当用户被定向到登录 View 然后返回到原来的 Action 方法。

Action 方法可以在调用 Controller 的 RedirectToAction 方法调用下一个 Action 之前将数据存储在 Controller 的 TempDataDictionary 对象中。 TempData 属性值存储在 session 状态中。在设置 TempDataDictionary 值之后调用的任何操作方法都可以从对象中获取值,然后处理或显示它们。 TempData 的值会一直存在,直到它被读取或 session 超时。以这种方式持久化 TempData 可以实现重定向等场景,因为 TempData 中的值在单个请求之外可用。

关于asp.net-mvc - 表单发布后如何保存 ViewBag 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997681/

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