0

我知道 ViewBag 和 ViewData 可用于将数据和对象从控制器传递到相应的视图。它们可以反之亦然,即将数据从视图传递到控制器或绑定到模型属性。我在视图中有一个文件选择。现在我可以使用 ViewBag 将该文件传递给控制器​​或将该文件绑定到我的模型属性吗?

谢谢

4

2 回答 2

1

ViewBag 或 ViewData 容器不能用于将数据传输回控制器。这是由于页面是无状态的。因此,一旦视图被完全渲染(以及所有后续视图),ViewBag 容器就会被丢弃。

要将信息传递回控制器,您的选择是在查询字符串或表单属性中使用 HttpGet 或 HttpPost。这可以通过传统请求或通过 aJax 请求。

但是,您可以将 ViewBag \ ViewData 中的值绑定到模型属性。但是,必须使用上述方法之一将该模型属性发送回控制器。

希望这可以帮助。

于 2013-11-12T06:32:38.447 回答
1

view bag 的生命周期只持续初始请求的持续时间,因此在您发出额外请求时不会定义它。在此处查看更多信息: ViewBag/ViewData 生命周期

但是,您可以执行以下操作: 如何在表单发布后保存 ViewBag 数据?

为将来的请求等构建路由参数

于 2013-11-12T06:33:12.240 回答