MVC从Controller到view进行传值的两种方法

   这篇博客主要是MVC的数据传递中的ViewBag和ViewData。

一、从定义来看

ViewBag

 //
        // 摘要:
        //     获取动态视图数据字典。
        //
        // 返回结果:
        //     动态视图数据字典。
        [Dynamic]
        public dynamic ViewBag { get; }

     ViewBag返回的是dynamic类型,返回动态视图数据字典。而ViewData的返回值类型是ViewDataDictionary,ViewDataDictionary表示一个容器,该容器用于在控制器和视图之间传递数据。

 //
        // 摘要:
        //     获取或设置视图数据的字典。
        //
        // 返回结果:
        //     视图数据的字典。
        public ViewDataDictionary ViewData { get; set; }

二、使用上的区别

(1)ViewBag

Controller中

 public class HomeController : Controller
    {
        //
        // GET: /Home/
       
        public ActionResult Index()
        {
            ViewBag.MyParam = "ViewBag传递的参数:"+Request["param"];
          
            return View();
        }

    }

在视图中显示

@{
    ViewBag.Title = "Index";
}

<h2>@ViewBag.MyParam</h2>

在地址栏之后输入手动加入参数,如:http://localhost:50663/home/index/?param=helloWorld,我们可以看到呈现的页面为:



(2)ViewData

ViewData的使用与ViewBag类似,只是语法稍有不同。

public class HomeController : Controller
    {
        //
        // GET: /Home/
       
        public ActionResult Index()
        {
            ViewData["str1"] = "ViewData传递的参数:"+Request["str1"];
          
            return View();
        }

    }

视图中

@{
    ViewBag.Title = "Index";
}
<h2>@ViewData["str1"]</h2>


效果图如下所示:


   ViewData是一个字典集合,通过key值读取对应的value;ViewBag是动态类型,作用和ViewData一样,都是用来存储信息,有一些不同的是ViewData是object类型,ViewBag是动态类型。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值