ASP.NET Core 学习笔记(1)理解 MVC

1 MVC 概述

实际上在学习任何架构的时候都要理解它里面各种角色的职责,否则就可能会误用。比如在 iOS 编程时候的 MVC,如果不明白 Controller 的职责,则很容易将 ViewController 用作广义的 Controller,从而造成 ViewController 变得 Massive,主要原因是 ViewController 本身和 View 间就是紧耦合的,无法像标准 MVC 那样将 ViewController 作为广义的控制器来使用。

下面就来讲讲 ASP.NET 中的 MVC 架构模式,并看看它是如何将应用分离为三类主要构件的。

分离构件的好处是: 更好测试,更好维护,更好扩展。MVC 将交互(input)逻辑,业务逻辑,显示逻辑进行分离,从而降低程序元素间的耦合。在 MVC 中实际就已经规定了逻辑代码的归属:显示逻辑放在 View(这也是为什么 iOS 中需要把 ViewController 归入广义的 View 中的原因), 业务逻辑放在 Model,交互逻辑放在 Controller。

三类构件的职责说明:

  • Models(模型):建模即对客观事物进行抽象的过程,而模型就是建模的最终产物。在 APP 中,模型构件表示的是数据。模型类对象的主要功能是从数据库读取模型状态,或是将模型状态保存到数据库。

  • View:用于显示 UI 的组件,主要是将 Model 数据显示到 UI 上。

  • Controller:用于处理浏览器请求的组件。 它从模型取得数据,然后将数据交给 View 渲染,然后将 View 渲染的结果作为响应发送给浏览器。

MVC

2 实际操作

打开上一次建立的工程,在 Controller 文件夹上点右键新建一个 Web Controller。

在 Controller 中的 public 方法都是动作方法,默认的方法名就是其路径名,因为在 Startup 类的请求处理管线中就定义了 Route 的具体规则:

app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}/{id?}");
});

其中最后一个指定的是路径参数,且是可选的参数,在动作方法中添加一个名为 id 的参数即可接收。

方法的参数会自动对应到请求的 URL query String 中的参数,且不区分大小写。

默认情况下,Route 规则中将 Controller 的名称去除 Controller,就是路径。

参考文献

  1. 微软官方文档
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 前言 看了下上篇博客的发表时间到这篇博客,竟然过了11个月,罪过,罪过。这一年时间也是够折腾的,年初离职跳槽到鹅厂...
    西木柚子阅读 21,236评论 12 184
  • 文/慕鱼 岁月是纯白 在七月的帷幕里 我是只白鸽 汲取天空的澄澈 把明天变做一枝茉莉 早上醒来风也澄澈透明 睡眠搁...
    水藻慕鱼阅读 168评论 0 3
  • 在路上前行的人,你好! 我们会在2024年再次相遇,那时,你已经40岁,再遇到未来的你时,想象着,应该...
    青水素雅阅读 153评论 2 0
  • 先编了几个数据,都差不多,只是后两个变量有小数位,一个的小数位大于0.5,一个的小数位小于0.5. 我用了两种方法...
    格物记阅读 2,297评论 0 0