mvc中viewstate和viewdata有什么区别?
答案 0 :(得分:2)
我刚刚通过MVC框架&确切的问题出现在我脑海中..我理解下面的区别。
ASP.Net& MVC是两个不同的世界。但仔细观察他们不是。 Web的概念保持不变,它只是编写代码的方式。好吧,让我们比较一下
<强> ASP.Net 强> .aspx - 所以这是包含要在浏览器中呈现的html的视图
.aspx.cs - 我们知道这是执行html所有操作背后的代码
所以最重要的是我们的BO具有我们的属性,并且使用数据绑定绑定到控件。
因此,ViewState会在回发之间来回记住绑定到控件的数据。
<强> MVC 强> 查看 - 这包含所有HTML代码,而这些代码仍然是.aspx或ascx文件
控制器 - 具有HTML背后的逻辑。在内部,您可以使用操作方法来执行特定操作。
因此,在这里,您可以使用具有相同属性的模型,这些属性将提供给View,以使用不同的语法而不是数据绑定来呈现自身。
现在,ViewData用于绑定控制器和视图之间的匿名数据。
相比之下,ViewData更有条理,更易于使用,但除此之外,它们具有相似的用途,但在很少的方面有所不同。就像Viewstate在回发之间持久而ViewData并不像MVC那样无状态。
希望这在一定程度上解释
答案 1 :(得分:1)
ViewState和ViewData可以处理一些复杂的对象。
ViewState在页面生命周期内,而ViewData以非常不同的方式工作。 ViewData可以传递到目标视图。
请参阅此处了解viewState: http://msdn.microsoft.com/en-us/library/ms972976.aspx
for viewData: http://www.asp.net/mvc/tutorials/asp-net-mvc-views-overview-cs
希望有所帮助
答案 2 :(得分:0)
视图状态仅用于ASP.net表单,控件和页面生命周期。 ASP.net框架使用视图状态来管理控制状态。
查看数据是传递给您的视图的数据集或数据 - 在MVC中翻译HTML数据,
在MVC中不使用Viewstate。有关详细信息,请参阅上述链接。