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方法之间共享数据。

        

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/bjxingch/p/8152568.html
Copyright © 2011-2022 走看看