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是动态类型。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 20:43:01

MVC从Controller到view进行传值的方法的相关文章

MVC中Controller间的传值、Controller到View的传值方法

从做了考试以来,和别人也进行了交流,发现系统内部的传值算是一个比较费劲的问题.这篇博客讲解两种传值的情况--MVC中Controller间的传值,这里包括了第二种Controller到View的传值. 示例:我有两个Controller:C1和C2,我想把C1中的课程实体的课程ID传到C2中.方案是先把C1中的课程ID传到C2对应的View页面的地址栏中,然后C2从自己的View页面中获取. 来看代码: //下面是一个easyUI的表格,执行ScoringManagementCotroller下

Asp.net mvc中controller与view间的如何传递数据

1.      Asp.net中的页面指令 无论是在java程序中还是在.net程序中,我们总是会看见一些@指令,那么这些常见指令的作用是什么呢? ?  @Page指令 只能在.aspx页中使用.如果在其他页面中使用会发生编译错误.比较常见的属性有: 1. Language 指出在编译内联代码块和页的<script>节中出现的所有代码时所使用的语言,默认的语言是Visual Basic .NET. 2. AutoEventWireup 指出是否启用页事件.默认为true. VS.NET开发的页

MVC中Controller与View中间的数据传递的常用方法

这几天正在学习MVC,顺便就将自己每天的学习心得记录下来与大家分享一下吧! 在MVC中,Controller与View之间传递数据是很频繁的事情,所以在这里就总结一下我自己在学习中使用的几种常用的方法: 将数据从Controller中传递到View中: ViewData:它是Key/Value字典集合 赋值方式(cs文件中): ViewData["Demo"]="Hello world!"; 使用方法(aspx文件中): <h1> <%:ViewD

ASP.NET MVC中Controller与View之间的数据传递总结

在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: Ø Controller向View传递数据 Ø View向Controller传递数据 一.Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controller中

MVC中Controller与View之间数据互传

转自:http://blog.csdn.net/sknice/article/details/42323791 在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.Controller向View传递数据 1.使用ViewData传递数据 在Controller中定义如下: ViewData[“Message_ViewData”] = “ Hello ViewData!”; 在Vie

ASP.NET MVC中Controller与View之间的数据传递

一.Controller向View传递数据 Controller向View传递数据有3种形式: 1.通过ViewData传递 在Controller里面定义ViewData,并且赋值,比如 ViewData["contact"] = contact; 然后在View里面读取Controller中定义的ViewData数据 比如联系人: <input type="text" value='<%=ViewData["contact"] %

Asp.net MVC中 Controller 与 View之间的数据传递

在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用ViewBag.user (3)使用TempData["user"] (4)使用Model(强类型) 区别: (1)ViewData与TempData方式是弱类型的方式传递数据,而使用Model传递数据是强类型的方式. (2)ViewData与TempData是完全不同的数据类型,View

MVC从Controller到View的呈现

当路由机制已经激活Controller并InvokeAction后,如果返回的是View, 则ViewResult基于View呈现的请求响应机制内部借助MVC提供的View引擎来实现对View的获取.激活和呈现. ASP.NET MVC提供的View引擎有两种,一种是传统的Web Form引擎(.aspx),另一种那个就是要讲的Razor引擎(.cshtml/vbhtml). View引擎的核心是ViewEngine对象,它实现IViewEngine接口,IViewEngine定义了两个Find

Asp.net MVC中Controller向View传值

一.使用Model 首先创建一个Model public class HelloModel { private string _name; private string _text; public string Name { get { return _name; } set { _name = value; } } public string Text { get { return _text; } set { _text = value; } } } 然后创建强类型的View视图,在View