MVC传值 ViewData、ViewBag、TempData
程序员文章站
2022-04-02 13:13:10
...
结论
1、ViewData、ViewBag只可以在当前视图不限次数使用
2、TempData可以在当前视图或者跨视图传递。但只能使用一次。
3、ViewData、ViewBag值可以互取,TempData基于Session实现不能与ViewData、ViewBag值互取
4、ViewBag是基于ViewData的实现。同Key时值会被覆盖
public class HomeController : Controller
{
public ActionResult Index()
{
//1、2、跨页面传值测试
//3、值互取测试
ViewData["ViewDataCrossPageTest"] = "ViewData跨页面传值";
ViewBag.ViewBagCrossPageTest = "ViewBag跨页面传值";
TempData["TempDataCrossPageTest"] = "TempData跨页面传值";
//4、ViewData、ViewBag同Key测试
ViewData["Name"] = "张三";
ViewBag.Name = "李四";
return View();
}
public ActionResult Contact()
{
return View();
}
}
Index.cshtml
<h1>跨页面传值测试</h1>
<h2>ViewData:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewData1:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewBag:@ViewBag.ViewBagCrossPageTest</h2>
<h2>ViewBag2:@ViewBag.ViewBagCrossPageTest</h2>
<p>
结论:ViewData、ViewBag只可以在当前视图不限次数使用
</p>
<p>
TempData可以在当前视图或者跨视图传递。但只能使用一次。
</p>
@*<h2>TempData:@TempData["TempDataCrossPageTest"]</h2>*@
<hr />
<h1>ViewData、ViewBag值互取</h1>
<h2>使用ViewData取ViewBag值:@ViewData["ViewBagCrossPageTest"]</h2>
<h2>使用ViewBag取ViewData值:@ViewBag.ViewDataCrossPageTest</h2>
<h2>使用ViewBag取TempData值:@ViewBag.TempDataCrossPageTest</h2>
<p>
ViewData、ViewBag值可以互取,TempData基于Session实现不能与ViewData、ViewBag值互取
</p>
<hr />
<h1>ViewData、ViewBag同Key测试</h1>
<h2>ViewData:@ViewData["Name"]</h2>
<h2>ViewBag:@ViewBag.Name</h2>
<p>结论:ViewBag是基于ViewData的实现。同Key时值会被覆盖</p>
Contact.cshtml
<h1>跨页面传值测试</h1>
<h2>ViewData:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewBag:@ViewBag.ViewBagCrossPageTest</h2>
<h2>TempData:@TempData["TempDataCrossPageTest"]</h2>
<p>
结论:ViewData、ViewBag只可以在当前视图不限次数使用
</p>
<p>
TempData可以在当前视图或者跨视图传递。但只能使用一次。
</p>
推荐阅读
-
MVC5控制器传值的三种方式(ViewData,ViewBag,TempData),刚刚学习MVC5的新手,希望各位大神多多指教
-
如何不用Ajax向后台传值 Spring MVC
-
Asp.net MVC中Controller向View传值
-
ASP.NET MVC Action向视图传值之匿名类型
-
ASP.NET MVC controller 之间传JS值
-
Asp.net MVC中的ViewData与ViewBag
-
详解ASP.NET MVC 下拉框的传值的两种方式
-
ASP.NET MVC传递Model到视图的多种方式总结(二)__关于ViewBag、ViewData和TempData的实现机制与区别
-
Asp.net MVC 3中Session与ViewBag传值到Js中
-
.NET MVC传值