MVC的默认约定
2024-08-21 04:59:22
MVC项目中有很多默认约定,一种是对项目目录分配的约定,比如默认情况下需要将Javascript文件放置在Script文件夹中,但这并不妨碍你将这个文件夹重新命名,也可以将整个文件夹放置到任何想要放置的地方,并不会影响程序的正常运行。另外一种就是要遵循所谓的惯例优先原则(principle of convention over configuration),对于很多项目来说,严格遵从已有惯例和使用合理的缺省选项大概是这些项目需要的,这意味着,如果建立了一套命名规范,诸如此类,就可以显著地减少系统所需配置项目的数量, 来建立处理器映射、视图解析器、ModelAndView
实例,等等。 这为快速原型开发提供了很大方便。同时提供了一定程度的(通常是好事情)代码库的一致性,进而可以从中选择并发展为成型产品。
----有关控制器类的规范约定
- 控制器类名必须以Controller结尾;例如ProductController
- 项目中引用控制器时,例如使用HTML helper方法时,只需要指定前半部分的名称;例如Product;
- 可以通过实现IControllerFactory接口创建定制的约定,虽然没必要这样做;
----有关视图的约定
- 视图或分部视图要放置在/Views/Controllername文件夹中,比如一个与ProductController类相关的视图应放置在/Views/Product文件夹中;
- MVC框架希望一个action方法的默认视图应该以方法名进行命名,比如一个List方法的视图应该命名为List.cshtml。由于List方法位于ProductController类中,则默认的视图应该是/Views/Product/List.cshtml.
- 如果在action方法中直接调用return View(); 则显示默认视图;如果显示其他指定视图,则需要在action方法中调用return View("MyOtherView");
- MVC框架搜索视图路径的默认顺序是:先在/Views/Controlloername/文件夹下查找,如果没有找到,就在/Views/Shared/文件夹下查找,仍未找到,则报错;
----有关布局的约定
- 布局文件需要在文件加“_”前缀,并且放置在/Views/Shared文件夹下,默认情况下除了空项目模板都使用_Layout.cshtml作为布局模板,并且在/Views/_ViewStart.cshtml下进行调用。
- 如果想用指定的布局替代,则修改_ViewStart.cshtml:
@{
Layout="~/Views/Shared/MyLayout.cshtml";
}
- 或者想禁用布局,则修改_ViewStart.cshtml:
@
{
Layout=null;
}
最新文章
- 在 Linux 上配置一个 syslog 服务器
- 实现UniqueAttribute唯一性约束-优化版
- Vector &; ArrayList 的主要区别
- python学习笔记-day4笔记 常用内置函数与装饰器
- MyISAM 存储引擎
- 安装Oracle11后在SQL Developer启动时提示:enter the full pathname for the java.exe
- SE 2014年3月31日
- 【POJ】2348 Euclid's Game(扩欧)
- LeetCode(32)-Binary Tree Level Order Traversal
- Flutter &; Dart 安装在window系统
- [BigData - Hadoop - YARN] YARN:下一代 Hadoop 计算平台
- Linux中盘符的两种挂载方法
- hadoop第一部分-安装、测试
- TC-572-D1L2 未完!待续!
- FMXUI
- 【转】Mac下升级python2.7到python3.6
- 8个PHP数组面试题
- linux sed命令详解-乾颐堂CCIE
- lintcode-141-x的平方根
- JavaWeb---总结(十九)Session机制
热门文章
- 2018.09.07 bzoj1911: [Apio2010]特别行动队(斜率优化dp)
- c语言中几个常见的库函数strlen、strcmp、strcat、strcpy、strncpy、memset、memcpy、memmove、mmap
- myeclipse新建jsp文件时弹出默认模板,怎么改成自己修改后的
- 一种基于Redis的10行代码实现IP频率控制方法
- mac下svn无法上传.a文件的问题
- MySQL Yum存储库 安装、升级、集群
- HDU2577 How to Type 2016-09-11 14:05 29人阅读 评论(0) 收藏
- 解决Redis/Codis Connection with master lost(复制超时)问题
- [LeetCode] Binary Tree Maximum Path Sum(最大路径和)
- 一起学习MVC(3)Views的学习