MVC强类型和弱类型的区别
1 强类型的处理
首先必须要有一个对象的实体类,UserINfo就是一个实体类,如下:
public class UserInfo()
{
public int Id{set;get;}
public string UserName{set;get;}
public int UserAge{setl;get;}
}
调用这个实体类的Action如下:
public ActionResult QiangLeiXing()
{
UserInfo userinfo=new UserInfo();
userinfo.Id=1;
userinfo.UserName="GRL";
userinfo.UserAge=20;
ViewData.Model=userinfo;
return View("View1");
}
页面View1的显示信息的代码如下:
使用强类型的代码需要引入强类型的Model,就是页面最上面的那一坨代码。在使用时候只需要用Model打点的方式就可以调出需要使用的信息。
至于为什么在前台使用Model就可以,原因如下:
用反编译的软件打开Model的定义函数时,现时的代码如下:
public TModel Model()
{
get{
return this.ViewData.Model;
}
}
也就是说.net 平台帮我们封装了一层,如果不封装这层函数,我们在前台使用的时候需要写的代码是
<%: ViewData.Model.Id %>
用具体的图示如下:
因此我们可以这么方便的使用强类型的数据。
2 弱类型
处理后台代码的Action 方法如下:
public ActionResult Index()
{
DataTable dt=sqlHelper.ExcuteDataTable("select ID, Class, Department, Teacher from TB_Class ");
ViewData["dt"]=dt;
return View("Home");
}
Home页面中的代码如下:
MVC强类型和弱类型的区别的更多相关文章
- [转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化
[泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大.(2)使用泛型时不需要通过obje ...
- c#中的强类型、弱类型和泛型
强类型和弱类型的变量都有两个属性:类型和值. 强类型的变量类型是不能改变的,弱类型的变量类型是随需改变的,这是强弱的真正含义. 我们在编写c#代码时,变量类型是明确的,不可更改的,如string就是s ...
- 解释型vs编译型 动态vs静态 强类型vs弱类型
------------------------------------------------------------ 释型.动态语言与静态语言.强类型语言与弱类型语言的区别 编译型和解释型 我们先 ...
- 强类型 和弱类型 c#
强类型的意思是,在编译的时候,已经确定类型了. 弱类型的意思是,在运行的时候,才确定类型
- python是强类型还是弱类型语言
几句话了解python特性 Python 是强类型的动态脚本语言 好多人对python到底是强语言类型还是弱语言类型存在误解,其实,是否是强类型语言只需要一句话就可以判别, 强类型:不允许不同类型相加 ...
- MVC 强类型传值Model。和弱类型传值ViewData[""]。及用EF进行增删查改(母版页的使用)
<1> 控制器 </pre><pre name="code" class="csharp">using MvcTest.Mo ...
- 【C#基础概念】编程语言:弱类型、强类型、动态类型、静态类型
一.看图区别编程语言 一般来讲,看第一个图就够了 这图是引用的,有错误,Python是强类型,但是图片中却归为弱类型了. 业界堆静态和动态的区分达到共识. 但是堆强类型和弱类型语言还未达成共识.我个人 ...
- CTF中常见的 PHP 弱类型漏洞总结
作者:ZERO 所属团队:Arctic Shell 参考资料: http://archimesan.me/2017/12/21/php%E5%BC%B1%E7%B1%BB%E5%9E%8B%E6 ...
- Javascript 弱类型:除法结果是小数
由于javascript是弱类型,只有一种var类型,所以在运算时不会自动强制转换,所以计算的结果是多少就是多少,但java中的17/10的结果就是1(强类型与弱类型)比如:console.log(M ...
随机推荐
- Uiautomator打包使用第三方库,报错的解决方案
问题引源: 在做自动化过程中,想在用例执行完毕后,自动生成该用例测试报告: 报告定义为Excel格式文件,且在用例执行过程中生成. 所以我在Uiautomator工程中引用了jxl.jar,用以处理E ...
- 转 c# 日期函数[string.Format----GetDateTimeFormats]格式 .
DateTime dt = DateTime.Now;Label1.Text = dt.ToString();//2005-11-5 13:21:25Label2.Text = dt.ToFileTi ...
- SQL SERVER事务处理
SQL SERVER事务处理 一.事务定义: 事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分. 如果事务遇到错误且必须取消或回滚,则所有 ...
- github配置
注册github账号: 准备秘钥文件: 认证: https://github.com 测试秘钥: 创建仓库: 执行下面命令创建git远程仓库: 添加一个two.txt文件:
- lightning mdb 源代码分析系列(3)
本系列前两章已经描述了系统架构以及系统构建的基础内存映射,本章将详细描述lmdb的核心,外存B+Tree的操作.本文将从基本原理.内存操作方式.外存操作方式以及LMDB中的相关函数等几方面描述LMDB ...
- nodejs 更新最新版本
sudo npm cache clean -f sudo npm install -g n sudo n stable
- HDU 1542 Atlantis(线段树扫描线+离散化求面积的并)
Atlantis Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- etcd学习记录
参考资料: etcd:从应用场景到实现原理的全方位解读 etcd:用于服务发现的键值存储系统 Etcd学习(一)安装和.NET客户端测试 Etcd学习(二)集群搭建Clustering
- QT5中文显示
- markdown 书写表格
Tables Are Cool col 3 is right-aligned $1600 col 2 is centered $12 zebra stripes are neat $1 Refs ma ...