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 ...
随机推荐
- 使用STL map 用 string 做索引 插入删除数据
1.代码 #include <map> #include <string> #include <stdio.h> #include <vector> # ...
- app.config中的connectionstring
<connectionStrings> <add name="wz" connectionString="server=www.junjv.com ...
- 3DMark Sky Driver
Futuremark今天宣布,3DMark Sky Diver测试场景已经正式发布,现有用户可以免费更新. 3DMark的十几年历史上,这是第一次为某个版本增加全新的测试场景.升级后的3DMark版本 ...
- Ubuntu下配置C/C++开发环境
在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...
- 【转载】python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- laravel 外键schema RBAC
$table->bigIncrements('id') ; Incrementing ID (primary key) using a " UNSIGNED BIG INTEGE ...
- Flink - FlinkKafkaConsumer08
先看 AbstractFetcher 这个可以理解就是,consumer中具体去kafka读数据的线程,一个fetcher可以同时读多个partitions的数据来看看 /** * Base cl ...
- Lazarus如何变成XE的界面
先设置: 进入“配置安装的包”,选中 EasyDockMgr 和 easyDockMgrDsgn 这两项,重新编译 Lazarus 吧 修改以后,界面就变成了XE的了:
- 原生js实现跑马灯抽奖效果
目前好多的微信活动都有一些抽奖活动,其中就有跑马灯. <!DOCTYPE html> <html> <head> <title>跑马灯效果</ti ...
- 【No.1 Ionic】基础环境配置
Node 安装 git clone https://github.com/nodejs/node cd node ./configure make sudo make install node -v ...