前言
在传统asp.net webform程序中,进行值传递的对象有:ViewState,Cookie,Application,Session等等。其中使用得最为频繁的,肯定是ViewState,只有回传信息都会有ViewState。而在asp.net MVC中是没有ViewState的,那么是如何传值的呢?
三种传值方法
ViewData:针对单一页面(用于一个方法中)进行值传递,跟WebForm中的ViewState在些神似
使用: this.ViewData["ViewDataTest"] = "ViewData测试";
调用: <%:Html.Encode(ViewData["ViewDataTest"]) %>
TempData:TempData是跨页面传输的,可在多个页面中设置使用。存于Session中,在每次执行请求中,控制器每次从Session中
取出一次TempData,然后删除该Session。
使用: this.ViewData["ViewDataTest"] = "ViewData测试";
调用(多个页面): <%:Html.Encode(ViewData["ViewDataTest"]) %>
Model: 强类型数据方便检查错误。
使用:<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<WT.TTC.UI.Models.Customers>>" %>
注意:IEnumerable<WT.TTC.UI.Models.Customers>>" 类型为:IEnumerable<T>,才能使用foreach
扩展:传递多个model:可这样声明一个新model
本文介绍了在ASP.NET MVC中,如何在控制器与视图之间传递值。与传统的ASP.NET WebForm不同,MVC不使用ViewState。文章详细讲解了ViewData、TempData和Model三种传递方式的使用场景和方法。ViewData适用于单一页面,TempData可跨页面传递,而Model则提供了强类型的便利。此外,还提及了如何通过定义新模型来传递多个数据模型。
188

被折叠的 条评论
为什么被折叠?



