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;
}

MVC的默认约定的更多相关文章

  1. asp.net -mvc框架复习(4)-ASP.NET MVC中的约定规则

    1.路由规则 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System ...

  2. 修改MVC视图默认搜索规则(IViewEngine)

    前几天我自己在写一个系统,写到后台管理系统的时候,我突然有个想法就是:想在区域视图下新建文件,单独处理后台一些业务:Area/AdminManager/View/Content/Index.cshtm ...

  3. 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/code-first-conventions.aspx EF 6 Code-First系列 ...

  4. C# MVC的默认页

    MVC的默认页,其实是默认路由设置启动哪一个Controller的哪一个Action,在根目录的Global.asax.cs里面设置.是MVC项目里面的路由.將下面的controller和action ...

  5. EF CodeFirst简介、默认约定、数据库初始化策略

    CodeFirst 工作流程 创建或修改领域类-->使用数据注解或者Fluent API来配置领域类-->使用自动数据库迁移技术或者基于代码的数据库迁移技术来创建数据库. CodeFirs ...

  6. MVC中Url请求与控制器的默认约定

    1.请求的url如:http://localhost:52481/Home/Browse?genre=1控制器方法:public string Browse(string genre) //这里返回值 ...

  7. 设置ASP.NET MVC站点默认页为.html页 .

    同事部署了一个Asp.Net MVC的站点,希望它的默认页是index.html页,在vs2010中给站点根目录增加了index.html,然后调用没有什么问题,但部署到IIS7上,在功能试图=> ...

  8. Spring 4 官方文档学习(十一)Web MVC 框架之约定优于配置

    当返回一个ModelAndView时,可以使用其addObject(Object obj)方法,此时的约定是: An x.y.User instance added will have the nam ...

  9. ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?

    当创建一个默认的mvc模板后,项目如下: 运行项目后,鼠标右键查看源码,在源码里看到头部和尾部都有js和css文件被引用,他们是怎么被添加进来的呢? 首先我们先看对应的view文件index.csht ...

随机推荐

  1. 2018.09.11 poj1845Sumdiv(质因数分解+二分求数列和)

    传送门 显然需要先求出ab" role="presentation" style="position: relative;">abab的所有质因 ...

  2. 2018.07.23 codeforces 438D. The Child and Sequence(线段树)

    传送门 线段树维护区间取模,单点修改,区间求和. 这题老套路了,对一个数来说,每次取模至少让它减少一半,这样每次单点修改对时间复杂度的贡献就是一个log" role="presen ...

  3. Django 必会面试题总结

    1 列举Http请求中常见的请求方式 HTTP请求的方法: HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式   注意: 1)方法名称是 ...

  4. python正则表达式转义注意事项

    无论哪种语言,在使用正则表达式的时候都避免不了一个问题,就是在匹配元字符的时候,需要对元字符进行转义,让 正则表达式引擎将其当做普通字符来匹配.本文主要以python为例,说明一下转义中需要注意的问题 ...

  5. (匹配 最小路径覆盖)Air Raid --hdu --1151

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1151 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  6. HDU1426 Sudoku Killer(DFS暴力) 2016-07-24 14:56 65人阅读 评论(0) 收藏

    Sudoku Killer Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会 ...

  7. hdu 5063 操作逆推+mul每次要*2%(modo - 1)

    http://acm.hdu.edu.cn/showproblem.php?pid=5063 只有50个询问,50个操作逆推回去即可,注意mul每次要*2%(modo - 1)因为是指数! #incl ...

  8. DFS剪枝处理HDU1010

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意很好理解,不是最短路,而是dfs,虽然地图不算大,稍微注意一点的dfs也能险过,但是700+ms和78 ...

  9. Android-Android7.0-java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

    某个AndroidProject项目在Android5.0系统运行是OK的,在Android7.0以上版本运行,报以下错误❌ 2019-01-02 15:33:39.996 17067-17067/? ...

  10. Android Studio Run 'app'安装APK到设备的过程

    1.AndroidStudio 点击Run 'app'. 2.点击Run 'app'就会将所有.class文件用SDK工具集处理成.dex, 用SDK工具集将图片/资源/布局文件/AndroidMan ...