繁体   English   中英

从控制器发送数据到视图的最安全和最干净的方法是什么?

[英]What is the safest and cleanest way to send data from controller to view?

我有这个问题我正在寻找答案,我看到了这个问题的答案

ViewData 和 ViewBag 有什么区别?

许多人在回答中提到既不使用 ViewBag 也不使用 ViewData 是“安全的”。 我不明白为什么,因为我对 Web 应用程序和它的整个概念以及整个 MVC 都不熟悉。 所以我的问题是:

  1. 为什么 ViewBag 和 ViewData 不是一种安全的数据传递方式?
  2. 传递数据的最佳方式是什么? (最重要的问题)

我真的很感谢你的帮助!

有过争论。 我总是使用特定的视图模型。

您也可以使用 ViewBag 或 ViewData,但不是首选。

ViewData 不安全,因为,

ViewData["foo"]可能没有在控制器中设置,但你试图访问它所以你会失败。 因此引入了使用语言动态特性的ViewBag

所以 ViewData 更安全一些。 然而,作为一个好的设计,每个视图创建视图模型对象是理想的。

另一种选择是强类型模型对象。 有些人更喜欢这样,因为它可以防止在使用动态 ViewBag 对象时可能发生的一些运行时异常。 它还允许使用自动完成等有用的 IDE 功能,并有助于生成更具可读性的代码。

Microsoft 的 Rick Anderson有一篇很好的博客文章,描述并给出了不同选项的示例,您可能会发现这些选项很有用。

如果强类型选项看起来像你想要追求的东西,本教程可能会有用: http : //www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing -your-models-data-from-a-controller

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM