维护Asp.net mvc中的viewstate?

Goo*_*ber 8 c# asp.net viewstate asp.net-mvc

使用webforms的一个主要原因是易于维护viewstate.我想构建一个asp.net mvc应用程序,以便我有什么选择来维护viewstate?

亲切的问候

Rob*_*vey 9

ASP.NET MVC不使用传统意义上的ViewState(在网页中存储控件的值).相反,控件的值将发布到控制器方法.一旦调用了控制器方法,您对这些值的处理取决于您.

ASP.NET MVC将持久保存控件的值,以便您验证它们并(如果需要)将它们往返往您的页面进行编辑或更正.如果控件验证,您可以将它们保存到数据库或其他数据存储中,在那里它们可用于后续GET请求.


jan*_*awa 6

您可以通过使用MVC3Futures项目在视图中序列化模型来模拟视图状态

您所要做的就是序列化模型并在视图中加密它.

@Html.Serialize("Transfer", Model, SerializationMode.EncryptedAndSigned)
Run Code Online (Sandbox Code Playgroud)

并在控制器中添加反序列化属性.

public ActionResult Transfer(string id,[Deserialize(SerializationMode.EncryptedAndSigned)]Transfer transfer)
Run Code Online (Sandbox Code Playgroud)


Saq*_*har 5

由于其业务层维护与表示层分离的基本设计,MVC框架不允许通过HTTP保留状态,但Cookie,Serializable类,ViewData和ViewBag是保存MVC中状态的好方法.