MVC,

V,就是View.视图

M,只应该是ViewModel.视图模型

C,Controller.控制器

我们需要怎么看待并使用这三者。

从你敲入url,我们可以做为入口。

当你敲入url并按了回车。我们的程序会去找到相应的Controller与Action,并在里面进行一系列的逻辑啊,什么的代码的运行。------Controller

然后如果你代码里面运行到了return View(model);

那么这个model,便会传给你的Action相应的页面-------------------------------------------------------------------------------View

首先,我们必须要做的,当然是协调这个model让它适应我们的视图,以呈现正确的,完整的信息。

那么我们接下来要做的,就是实现这个合适的model,并进行赋值,然后传给View让它来呈现给我们信息。

这个合适的model,就是ViewModel--------------------------------------------------------------------------------------ViewModel

个人认为,

至此,MVC的步骤便结束了。

不要把MVC当成一个循环。

很多时候很多人喜欢把MVC写成三角形,认为这三者是相互传递的,

Controller传递model给View,View接受并编辑model再传回给Controller,Controller接受model并直接编辑这个model再传递给下一个View,如此循环。

但是,我们应该认识到,无论做什么项目,存在数据库的数据才是真实的,写在内存里的数据,传来传去,说不定哪里就传错了。

当我们从后台Controller传给了视图View以后,我们就应该切断ViewModel与数据库的联系,要弱化View到Controller的关系。

即使在编辑完信息然后页面POST回来了一个完整的ViewModel,

我们也应该是对ViewModel进行接收,编辑,然后新建model,从数据库拿到最新的信息,赋值到新建的model,然后再传给下一个想要的页面。

这样才能保证,我们程序显示的数据,每次都是来自数据库的,是正确的。

再次认识ASP.NET MVC的更多相关文章

  1. 在不同版本的 IIS 上使用 ASP.NET MVC

    ASP.NET MVC Framework 依赖于 URL 路由.为了利用 URL 路由,可能不得不在 Web 服务器上执行额外的配置步骤.这些步骤取决于 Internet Information S ...

  2. asp.net MVC 3多语言方案--再次写, 配源码

    之前写了一篇asp.net MVC多语言方案,那次其实是为American Express银行开发的.有许多都是刚开始接触,对其也不太熟悉.现在再回过头去看,自己做一个小网站,完全用asp.net m ...

  3. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  4. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  5. 在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录

    在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录 前言 最近有个Web项目,业务功能不复杂,但是这个客户(某政府部门)有两个硬性要求:1 ...

  6. 使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标

    通常我们需要监测ASP.NET MVC 或 Web API 的应用程序的性能时,通常采用的是自定义性能计数器,性能计数器会引发无休止的运维问题(损坏的计数器.权限问题等).这篇文章向你介绍一个新的替代 ...

  7. ASP.NET MVC 视图(四)

    ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...

  8. ASP.NET MVC Model验证(四)

    ASP.NET MVC Model验证(四) 前言 本篇主要讲解ModelValidatorProvider 和ModelValidator两种类型的自定义实现,前者是Model验证提供程序,而Mod ...

  9. ASP.NET MVC Model验证(三)

    ASP.NET MVC Model验证(三) 前言 上篇中说到在MVC框架中默认的Model验证是在哪里验证的,还讲到DefaultModelBinder类型的内部执行的示意图,让大家可以看到默认的M ...

随机推荐

  1. 教你看懂 OpenStack 日志 - 每天5分钟玩转 OpenStack(29)

    instance 从创建到删除的整个生命周期都是由 Nova 管理的. 后面各小节我们以 instance 生命周期中的不同操作场景为例,详细分析 Nova 不同组件如何协调工作,并通过日志分析加深大 ...

  2. Nagios监控平台搭建

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员, ...

  3. 解决Android Graphical Layout 界面效果不显示

    解决Android Graphical Layout 界面效果不显示 qq463431476

  4. iptables详解

    Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则.即表包含若干链,链包含若干规则.  (一)三种表为:filter   nat  mangle 1.filter:处理与本机有 ...

  5. Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

    这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并 ...

  6. C#性能优化考虑的几个方向

    装箱与拆箱 ArrayList's vs. generic List for primitive types and 64-bits 类型转换   GC 注意SOH对象应该较快,避免内存泄漏 注意LO ...

  7. BI领导驾驶舱的功能特点

    随着企业的信息化能力越来越强,商业智能(BI)对他们而言已不仅仅是数据展现的工具.商业智能必须能够与企业的业务流程相联系,做企业随需随用的“战略军师”.“BI领导驾驶舱”的出现无疑顺应了BI的发展趋势 ...

  8. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

  9. matlab里的svmtrain的输出model里,各参数的含义

    Parameters: [5x1 double]  %结构体变量,依次保存的是 -s -t -d -g -r等参数      nr_class: 4    %分类的个数          totalS ...

  10. hadoop 8088无法访问

    http://bbs.csdn.net/topics/390891983 yarn-site.xml <property> <name>yarn.resourcemanager ...