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

        

  • 相关阅读:
    Yii2.0 rules验证规则大全
    面试官: 谈谈什么是守护线程以及作用 ?
    Spring Boot 2.0 WebFlux 教程 (一) | 入门篇
    Spring Boot 入门教程 | 图文讲解
    Spring Boot 2.0 图文教程 | 集成邮件发送功能
    面试官: 说说看, 什么是 Hook (钩子) 线程以及应用场景?
    性能测试工具 wrk 使用教程
    关于 Docker 镜像的操作,看完这篇就够啦 !(下)
    关于 Docker 镜像的操作,看完这篇就够啦 !(上)
    Docker 上传镜像
  • 原文地址:https://www.cnblogs.com/bjxingch/p/8152568.html
Copyright © 2011-2022 走看看