MVC Tempdata,查看并保持混乱

本博客假设您对MVC有一定的了解。如果没有,我建议从这个youtube视频开始学习MVC。 最近,我在孟买上MVC课程,我发现参与者对MVC tempdata, Peek和Keep的工作方式有很多困惑。我认为之所以产生这种混淆,是因为大多数MVC开发人员只知道一半的真相。 大多数MVC开发者知道的一半是: Tempdata帮助保存单个请求的值。 另一个开发者不知道的半真半假的事实是,或者我会说,让开发者困惑的是: “TempData还可以根据4个条件为下一个请求保留值”。 所以让我们试着去理解上面的两个表述。当终端用户向MVC应用程序发送一个请求时,“TempData”会在整个请求过程中得到维护。这个请求可以遍历多个操作或控制器,直到它在浏览器上显示视图。 现在在同一个会话中(没有关闭浏览器),如果一个新的/第二个请求被启动,那么“TempData”将根据4个条件被持久化: 不读正常读,读,偷看,读 因此,让我们更详细地讨论这四种情况(请参阅下面的图表以更好地理解): 条件1(未读):如果您在操作中设置了一个“TempData”,并且没有在视图中读取它,那么“TempData”将在下一次请求中被持久化。 条件2(正常读取):如果您像下面的代码一样正常读取“TempData”,那么在下一个请求中它将不会持久。 隐藏,复制Code

stringstr = TempData["MyData"];

即使你正在显示,它是一个正常的读像下面的代码: 隐藏,复制Code

@TempData["MyData"];

条件3(读取和保存):如果您读取“TempData”并调用“Keep”方法,那么它将被持久化。 隐藏,复制Code

@TempData["MyData"];
TempData.Keep("MyData");

条件4 (Peek和Read):如果您通过使用“Peek”方法读取“TempData”,那么它将在下一次请求时持续存在。 隐藏,复制Code

stringstr = TempData.Peek("Td").ToString();

上图是我从http://stepbystepschools.net/?p=1810拍摄的 因此,如果您在头脑中记住了这四个条件,就不应该对TempData产生任何混淆:)。 下面是一个演示Tempdata, Keep和Peek的视频。 本文转载于:http://www.diyabc.com/frontweb/news1668.html

posted @ 2020-08-08 08:15  Dincat  阅读(152)  评论(0编辑  收藏  举报