一开始学习dotnet的web项目是Asp.net webform,完全不理解项目为什么要这样设计,就简单的使用ajax调用后台的代码不好吗?为什么还要搞一些什么代码后置的东东。
还有就是有各种加载问题,比如一个页面在后台文件中继承了PageBase,你总得要为这个加载顺序忙上一段时间,好烦。
Asp.net mvc
幸亏在我开发的项目中没怎么用Asp.net webform不然我肯定会疯掉的,用的而是Asp.net mvc。mvc模式用起来简直太爽了,Controllers文件夹下放着所有控制器,在View文件夹下有对应控制器的页面。
虽然用着很爽,但是偶尔还是会碰到有的项目在HTML里会有一些看上去是后台代码的东西。
一般对待这种情况,如果项目里的代码能看懂的话就用项目里的代码,反之就把该功能重新实现一下。
偶尔用到但是却不知道这是什么鬼,所以决定学习一下。
Razor
原来在cshtml文件中的那些带@符的后台代码叫Razor。好像主要目的就是为了简化前端代码。
之前看过一篇文章,说的是如果一个web网站只有简单的几个页面的话创建一个Asp.net mvc项目就有点小题大做了,倒不如创建一个Razor项目。
确实,一个简单的web网站创建好多个控制器与之对应是有点麻烦。所以我打开了巨硬(微软)的doc,原来用dotnet cli的dotnet new razor命令就可以轻松创建一个razor项目。
Razor结构图
Pages文件夹
创建完了之后和mvc项目基本一样,只不过没有了controllers文件夹,但是和webform有点类似的是在pages文件夹下可以创建对应cshtml的cs文件。这样就可以把后台代码写到对应的cs文件中了。
Razor 语法的组成部分
- 隐式Razor表达式
- 显示Razor表达式
- 表达式编码
- Razor代码块
- 控制结构
- 指令
- 标记帮助程序
- Razor保留关键字
- 查看为视图生成的Razor C#类
- 视图查找和区分大小写
以上内容在微软doc有详细讲解 传送门