可有人请解释的TempData的MVC的目的。 我理解它像ViewBag但它有什么作用不止于此。
Answer 1:
TempData的意思是一个非常短暂的情况下,你应该只在当前,只有后续请求使用它! 由于TempData的这种方式工作,你需要确切知道下一个请求将是什么,并重定向到另一个观点是,你能保证这唯一的一次。 因此,在使用TempData的将可靠地工作的唯一情况是,当你重定向。 这是因为重定向杀死当前请求(并发送HTTP状态代码302物件移动到客户端),则在服务器上创建一个新的请求,以服务重定向视图。 在前面的HomeController中的代码示例回首意味着该TempData的对象可能会产生不同的结果比预期的,因为下一个请求源无法得到保证。 例如,下一个请求可以从一个完全不同的机器和浏览器实例发起。
http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications
Answer 2:
ViewBag
允许您创建动态属性
控制器与视图之间传递数据
调节器
ViewBag.Name= "Lion";
视图
<div>
<h4>@ViewBag.Name</h4>
</div>
TempData的
TempData的意思是一个非常短暂的实例
你只应该在目前,只有后续请求使用
TempData的字典用于共享控制器动作之间的数据
TempData["Name"] = "Lion";
我已经写了博客文章大约this.Check该如何正确地使用Asp.Net MVC TempData的?
Answer 3:
TempData的是从TempDataDictionary类派生并存储在短的生活会话的字典对象。
public TempDataDictionary TempData { get; set; }
它是ControllerBase class.It的属性用于从当前请求到后续请求传递数据(装置从一个页面重定向到另一个)。 它的寿命很短,只在于,直到目标视图满载。 它需要的类型转换获取数据,并检查空值,以避免error.It用于存储只有一次类似的消息的错误消息,验证消息。