Asp.net MVC中的约定

Asp.net MVC项目中有很多默认约定。包括控制器约定、视图约定等等。

一、控制器约定



1、Controller必须是非静态类

2、Controller必须实现接口IController

3、控制器的类名必须以Controller结尾;如HomeController;

如下面是一个标准Controller:


1

public class HomeController : Controller

4、项目中引用控制器时,例如使用HTML RenderAction方法时,只需要指定前半部分的名称;例如Home;


1

@Html.RenderAction("Check", "Home", null);    //Home是Controller

5、可以自己实现IControllerFactory接口创建你定制的约定;

二、视图约定



1、视图或分部视图要放置在/Views/Controllername文件夹中;

例如,HomeController的视图总是放在/Views/Home文件夹里面;

当然,熟悉了MVC之后,是可以定制Views的路径的。

2、Action方法默认的视图与Action同名;

例如,HomeController里有一个Content的Action,则Content的默认视图是/Views/Home/Content.cshtml。

我们在调用的时候,如果不传递参数return View();那么默认使用的是Content视图。如果我们希望使用其他视图,则可以将视图名称参数传入,如return View("index");这样就使用/Views/Home/Index视图呈现。

3、查找视图的顺序

Asp.net MVC查找视图路径的默认顺序是:

1、/Views/ControlloerName/;

2、/Views/Shared/;

如果以上两个地方都没有查找到视图,则报错;

如,我们访问/Home/Content。其默认查找视图的顺序如下:

三、布局的约定



1、布局文件需要添加"_"前缀。并且存放在/Views/Shared文件夹下。当我们创建视图时,默认会使用_Layout.cshtml作为布局模板。

如果不想要模板的单页面,可以选择"不使用母版页",或在页面顶部加入如下代码


1

2

3


@{

    Layout = null;

}

出处:Asp.net MVC中的约定

时间: 2025-02-01 17:05:44

Asp.net MVC中的约定的相关文章

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分. ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一.捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站.有许多可以减少 CS

[转] ASP.NET MVC 中你必须知道的 13 个扩展点

ScottGu 在其 最新的博文 中推荐了 Simone Chiaretta 的文章 13 ASP.NET MVC extensibility points you have to know,该文章为我们简单介绍了  ASP.NET MVC  中的 13 个扩展点.Keyvan Nayyeri(与Simone合著了 Beginning ASP.NET MVC 1.0 一书)又陆续发表了一些文章,对这13个扩展点分别进行深入的讨论.我将在以后的随笔中对这些文章逐一进行翻译,希望能对大家有所帮助.

如何在asp.net mvc中添加自定义的HTML辅助种方法

很久没在博客园发表文章了,今天来总结一下如何在asp.net mvc中添加自定义的HTML辅助方法.我们现在设计这么一个目前,利用自定义的HTML方法来渲染一个普通的img标记.直接进入主题吧: 首先我们先来看一下一个普通的img标签在HTML中的代码: <img src="Content/images/封面.jpg" alt="图片" id="img01" width="500px" height="250p

ASP.NET MVC教程五:ASP.NET MVC中的路由

一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在ASP.NET MVC程序中,路由主要有两方面的职责: 与入站的请求相匹配,将这些请求映射到控制器的动作中. 构造出站的URL,这些URL可以响应控制器的动作. 二.路由原理 1.注册路由 先看Global.asax中的代码: 网站启动的时候执行Application_Start方法,通过RouteCo

log4net 使用总结- (2)在ASP.NET MVC 中使用

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="

ASP.NET MVC中使用异步控制器

线程池 一直想把项目改写成异步,但是ASP.NETMVC3下写的过于繁琐,.NET 4.5与ASP.NET MVC下代码写起来就比较简单了, MS好像也一直喜欢这样搞,每一个成熟的东西,都要演变好几个版本,才能趋于规范. ASP.NET MVC 中为什么需要使用异步呢,IIS有一个线程池来处理用户的请求,当一个新的请求过来时,将调度池中的线程以处理该请求,然而,但并发量很高的情况下,池中的线程已经不能够满足这么多的请求时候,池中的每一个线程都处于忙的状态则在处理请求时将阻塞处理请求的线程,并且该

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用ASP.NE

ASP.NET MVC中使用FluentValidation验证实体

1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的验证方式,同时FluentValidation还提供了表达式链式语法. 2.安装FluentValidation FluentValidation地址:http://fluentvalidation.codeplex.com/ 使用Visual Studio的管理NuGet程序包安装FluentVa