• 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还是很好用的。

  • 相关阅读:
    CSS :hover伪类选择定义和用法
    php disk_free_space与disk_total_space实例介绍
    css required,focus,valid和invalid介绍
    E:in-range伪类选择器与E:out-of-range伪类选择器
    php不使用copy()函数复制文件的方法
    数组金额 转 大写
    PHP GD压缩图片
    php快递查询API类-支持各种快递
    share一段采集程序的代码
    全自动小说订阅微信推送
  • 原文地址:https://www.cnblogs.com/nivi3000/p/4931607.html
Copyright © 2020-2023  润新知