欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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>

MVC传值 ViewData、ViewBag、TempData
MVC传值 ViewData、ViewBag、TempData