首页 > Web开发 > 详细

ASP.NET MVC 简介

时间:2020-05-08 13:09:35      阅读:43      评论:0      收藏:0      [点我收藏+]

1.何谓Model

Model 可翻译成“模型”,笔者认为译成“数据模型”会更贴切一些,因为Model 负责所有与“数据”有关的任务,大致如下。

  • 定义数据结构。

  • 负责与数据库沟通。

  • 从数据库读取数据。

  • 将数据写入数据库。

  • 运行预储程序。

  • 数据格式验证。

  • 定义与验证商业逻辑规则。

  • 对数据进行各种加工处理。例如:指定特定实体(Entity) 某些字段的默认值。

简言之,只要是和“数据”有关的任务,都应该在Model 里完成定义。

2 何谓View

View可翻译成“检视”或者“视图”,但我很不喜欢这种为了翻译而翻译的名词,这样反而不利于沟通表达,所以之后一律会以View来表示。

View负责所有呈现在用户面前的东西,最简单的说法就是输出与输入。输出工作就是呈现在浏览器上的界面,例如,输出HTML、XML,等等。输入工作则是将用户输入的数据传回服务器,例如,在浏览器上呈现网页窗体让用户输入。

以下简单介绍,在View中与输出/输入有关的工作。

  • 输出

    • 从Controller 取得数据,并显示在用户界面上。

    • 决定要用什么技术来呈现“用户界面”(例如,HTML、XML、Silverlight 、Flash,等)。

    • 负责界面的排版、字型、颜色、美观与各种呈现方式。

    • 将Controller 传送的数据显示于界面,而数据是参考自Model 的定义。

    • 参考Model 的数据格式定义数据显示。

  • 输入

    • 负责将数据送回Controller 。

    • HTML 窗体通过GET 或POST 输出数据。

    • 决定数据应该送到哪一个Controller 的Action 中。

    • 决定数据传送的方式,例如,GET、POST、XML HTTP Request (XHR) 。

    • 前端基本的数据格式验证。

    • 验证功能,例如,使用JavaScript 验证表单域是否输入。

    • 参考Model 的类别定义,在Visual Studio 中利用Intellisense 撰写程序。

此外,与View相关的演示与技术如下。

  • HTML / XML / CSS

  • JSON

  • JavaScript ( jQuery 、jQuery UI 、MooTools 、Ext2、Prototype… )

  • MasterPage

  • ASP.NET Controls ( Server Control 、User Control )

  • AJAX 相关技术

  • Silverlight

  • Flash

  • Mobile 网页(PDA、手机、iPhone…)

  • WAP 网页

  • iPhone 网页

简言之,所有应该要显示在网页上的逻辑都是View负责的范围。

3 何谓Controller

Controller 可翻译成“控制器”,顾名思义就是“掌控全局的对象”,其负责的工作如下。

  • 决定与“用户”沟通的管道,以ASP.NET MVC 为例就是HTTP 或HTTPS。

  • 决定系统运作的流程。例如,从Controller 接收到数据后要立刻转向(Redirect) 到另一个页面。

  • 负责从Model 取得数据。我们可以在Controller 的类别中利用Model 提供的类别来取得数据。

  • 决定应该显示哪个View 。一个网站里有很多呈现的View,要挑选哪一个View 来呈现给用户,是Controller 的责任。或是当Controller 运行的过程中发生异常时,也可由Controller 挑选适当的View 进行响应。

  • MVC 架构

技术分享图片

 

1    Controller 与View 的关联性

在Controller 与View的关联性上,彼此都是双向关系,但Controller 的主动性较高。

当Controller 为“主动”角色时:

  • Controller 可决定要显示哪一个View 。

    当View为“主动”角色时:

  • View 可决定数据要送回到哪一个Controller 的Action 。

  • 当View 需要数据时,可决定数据应该从哪一个Controller 的Action 取得。

2 Model 与Controller 的关联性

在Controller 与Model 的关联性中,Controller 永远居于“主动”的角色。Controller 负责调用或使用Model 所定义的各种类别,而Model 很单纯的仅仅提供“数据服务”或“验证服务”给Controller 使用。

 

1 关注点分离与可维护性

在MVC的世界里,有个非常重要的观念就是“关注点分离(Separation of Concerns, SoC)”。意思是指当你在进行软件开发时,可以只关注在当前的对象上,不会受到相同系统中其他对象的干扰,包括所有对对象的修正也不会影响其他对象的运作,进而专注于完成工作,如此一来,不但容易提升软件质量,还可加快程序代码理解的速度。

MVC设计样式拥有清楚的开发架构与明确的对象分工,使软件更易于维护,若你是对面向对象编程颇有概念的人,就会了解好的对象架构带你上天堂,不好的对象架构带你住套房,老师说的话记得要听。

ASP.NET MVC 简介

原文:https://www.cnblogs.com/renwen123/p/5604767.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!