zoukankan      html  css  js  c++  java
  • MVC从Controller到view进行传值的方法

       这几天基本上都是交接的一些杂事,没有什么工作任务,就有空来回顾一下MVC。虽然工作中也用到了MVC,但已经被微软的架构师设计的找不到MVC的影子了,可能有别的考虑吧,至今还没研究出来。所以,今天就来回顾一下“原生”的MVC的基本操作,免得回来了以后跟你们聊不到一块~

       这篇博客主要是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是动态类型。

  • 相关阅读:
    Python学习笔记模式匹配与正则表达式之使用和不使用正则表达式
    关于Jqury的一些杂碎
    客户端验证模型
    导航(摘)
    解决了DIV+CSS一个问题
    购买了新书《Bootstrap用户手册—设计响应式网站》及简介Bootstrap是什么
    博客园的博客页面开通了,今天!
    利用Cmake 将最新版本OBS编译成windows版本。
    C语言无法使用引用,一定要使用怎么办? ------指针的指针做参数
    linux core文件的打开和分析
  • 原文地址:https://www.cnblogs.com/saixing/p/6730273.html
Copyright © 2011-2022 走看看