MVC:ViewBag ViewData TempData的区别

1.ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好。

2. TempData的使用:

同ViewData和ViewBag一样,TempData也可以用来向视图传递数据。只是ViewData和ViewBag的生命周期和View相同,只对当前View有用。而TempData则可以在不同的Action中进行传值,类似webform里的Seesion。

 举例如下:

1.后台写法如下:

public ActionResult Index()
        {
            string[] fruits = new string[] { "Apple", "Banana", "Kiwi" };
            ViewBag.Fruits = fruits;
            ViewData["Fruits"] = fruits;
            return View();
        }

2.前端写法如下 :(注意会出现问题)

 

MVC:ViewBag ViewData TempData的区别

 

 2.修改前端写法如下:

@{
    ViewBag.Title = "Index";
}

<h2>ViewBag vs ViewData</h2>
1. ViewBag写法如下:
<ul>
    @foreach (string item in ViewBag.Fruits)
    {
        <li>@item</li>
    }
</ul>
2. ViewData写法如下:
<ul>
    @foreach (string item in (string[])ViewData["Fruits"])
    {
        <li>@item</li>
    }
</ul>

3.测试结果如下:

MVC:ViewBag ViewData TempData的区别

 

上一篇:Javaweb第十三天


下一篇:在Python中以"foo.bar.baz"的方式访问嵌套dict中的内容