ASP.NET MVC轻教程 Step By Step 3 ——使用ViewBag

本文介绍如何在ASP.NET MVC中利用ViewBag动态对象传递数据至视图,包括基本用法、示例代码及注意事项。重点展示了如何在Index动作方法中通过ViewBag向Index视图传送数据,并在视图中展示这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一节我们创建了与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还是很好用的。

转载于:https://www.cnblogs.com/nivi3000/p/4931607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值