zoukankan      html  css  js  c++  java
  • ASP.NET MVC轻教程 Step By Step 3 ——使用ViewBag

    在上一节我们创建了与Index动作方法对应的Index视图,那么Index动作方法该如何向Index视图传送数据呢?其中一个方法是使用ViewBag(视图包)。让我们试试看。

    在Index动作方法中添加一行代码。

            public ActionResult Index()
            {
                ViewBag.Today = DateTime.Now.ToLongDateString();
                return View();
            }

    Today是我们自己命名的,看起来好像是ViewBag的一个属性,但ViewBag是动态对象,我们无需去事先声明Today。

    在Index视图中要显示ViewBag的Today,我们需要添加如下代码。

    <body>
        <h1>MVC留言板</h1>
        @ViewBag.Today
    </body>

    ASP.NET MVC3版本之后View采用Razor视图引擎,特点是以@符号作为标记-代码的转换字符。简单来说,就是在HTML标记中要写C#代码,在C#代码前加上@符号即可,更复杂的情况我们遇到了再解释。

    ViewBag是动态对象,所以没有代码提示,必须手工将“Today”打出来。

    运行之后,我们可以就看到Index方法传递给视图的当前系统日期了。

    我们甚至可以将留言的内容通过ViewBag传送给Index视图并显示出来。在Index动作方法里我们添加一个ViewBag。

            public ActionResult Index()
            {
                ViewBag.Today = DateTime.Now.ToLongDateString();
                ViewBag.Message = new string[] {"测试数据1", "测试数据2", "测试数据3", "测试数据4", "测试数据5", "测试数据6", "测试数据7", "测试数据8"};
                return View();
            }

    在Index视图中要显示ViewBag.Message字符串数组的内容,我们需要编写更多的代码。

    <body>
        <h1>MVC留言板</h1>
        @ViewBag.Today
        @foreach(var s in ViewBag.Message)
        {
            <p>@s</p>
        }
    </body>

    通过一个foreach循环可以获取ViewBag.Message中的所有字符串,注意这里代码和标签的混合使用。

    运行之后看到结果。

    使用ViewBag传递数据一大弊端在于作为动态数据没有代码提示,必须手写保证正确,不适合复杂对象的传递。如果只是传送一个简单的字符串的话,ViewBag还是很好用的。

  • 相关阅读:
    cve-2019-1388复现+烂土豆+CVE-2019-0803
    子父域控双向信任
    黄金票据 白银票据 ms14068
    joomla3.4.6 rce 分析与复现
    主键索引跟唯一索引的区别
    hash 跟B+tree的区别
    MySQL数据库有几种索引?分别是什么?
    什么是事务?事务有什么特性?分别是什么?
    MySQL建立索引的原则
    什么是索引?索引的作用是什么?
  • 原文地址:https://www.cnblogs.com/nivi3000/p/4931607.html
Copyright © 2011-2022 走看看