zoukankan      html  css  js  c++  java
  • ASP.NET MVC 随手记

      ViewBag:

        本质上市一个字典,提供了一种View可以访问的动态数据存储。这里用到了.NET 4.0的动态语言特性。可以给ViewBag添加任意属性,并且这个属性是动态创建的,不需要修改类的定义就可以从View中访问。

           View模板显示页面的规则是先找对应的Controller文件夹,再找到对应的Shared文件夹中所有继承自viewpage的页面。

      控制器的约定:

        ⑴、Controller放到controllers文件夹中,并且命名方式以Controller结尾。

        ⑵、每个Controller都对应View中的一个文件夹,文件夹的名称跟Controller名相同。Controller中的方法名都对应一个View视图(非必须,但是建议这么做)而且View的名字跟Action的名字相同。

        ⑶、控制器必须是非静态类,并且要实现IController接口。

        ⑷、Controller类型可以放到其他项目中。

      视图的相关约定:

        ⑴、所有的视图必须放到Views目录下。

        ⑵、不同控制器的视图用文件夹进行分割,每个控制器都对应一个视图目录。

        ⑶、一般视图名字跟控制器的Action相对应(非必须)。

        ⑷、多个控制器公共的视图放到Shared目录中。

      View和Action之间数据传递的方式:

      • 弱类型ViewData[“”]
      • 动态型ViewBag//dynamic
      • 动态类型Model
      • 临时存储TempData[""]
      • 后台:return View(data)://存入ViewData.Model
      • 前台:Model // 其实就是WebViewPage.Model

      TempData、ViewData和ViewBag的区别:

        ViewData是字典型的(Dictionary),ViewBag不再是字典的键值对结构,而是dynamic(动态)型,会在程序运行的时候动态解析。

        ViewData为Object型,而ViewBag为dynamic(动态)型。dynamic和object型的区别是在使用时它会自动根据数据类型转换,而object型则需要我们自己去强制转换。

        理论上ViewBag要比ViewData慢一点点,但是几乎可以忽略,所以使用何种方式完全取决于个人的爱好。

        TempData的使用同ViewData和ViewBag一样,TempData也可以用来向视图传递数据,只是ViewData和ViewBag的生命周期和View相同,它们只对当前View有用。

        TempData则可以在不同的Action中进行传值,类似Webform里的Session。有一点需要注意,TempData的值在取了一次后会自动删除。

        TempData用来在一次请求中同时执行的多个Action方法之间共享数据。

        

  • 相关阅读:
    HDU
    HDU
    POJ
    HDU
    HDU
    POJ
    HDU
    FZU
    LightOJ 1030 Discovering Gold 数学期望计算
    POJ 3061 Subsequence 二分查找
  • 原文地址:https://www.cnblogs.com/bjxingch/p/8152568.html
Copyright © 2011-2022 走看看