ASP.NET MVC4 学习笔记-1
初学ASP.NET MVC,通过博客来记录自己的学习笔记!
创建一个新的 ASP.NET MVC 项目
在新建项目中选择 ASP.NET MVC4 Web Application,项目类型为空,视图引擎为Razor。
- 在visual studio 2012 中即支持MVC4,也同样支持MVC3,因此我们可以看到就得模板在新的版本中同样适用。当我们创建一个新的项目的时候,一定要选择正确的项目类型。
我们可以在一个下拉列表中选择项目的视图引擎。在MVC3模板中,微软引进了一种新的视图引擎叫做Razor,在以后的项目中都是使用的Razor这种视图引擎,我希望你也是这样,但是如果你继续希望使用ASP.NET视图引擎(同时称为ASPX引擎),我们可以在这个地方进行选择。在以后的章节中我们将会讲解Razor引擎好人视图引擎的作用。
第一次在Visual Studio中创建MVC项目时,在解决方案管理器中我们将会看到一些文件和文件夹,这是MVC4项目的默认结构。我们可以尝试运行这个项目,我们可以看到一个404 Not Found 错误,因为我们运行了一个空的项目模板,这个程序没有包含任何可以运行的程序。
Visual Studio可以打开浏览器运行我们的项目,同时我们也可以通过工具栏菜单来改变打开的浏览器。在以后的项目中,我们将会使用Internet Explorer 10浏览器,现在所有的浏览器都是非常好的,但是我们继续使用IE,因为它是安装用户最多的浏览器。
增加第一个控制器(Controller)
在MVC架构中,用户的请求通过Controller来处理,在ASP.NET MVC中,控制器就是C#类(通常继承于 System.Mvc.Controller,这个框架在控制器的基础类中创建)。控制器中的每一个public类型的方法都被称作action method,以为这我们通过一些URL来执行其中的一个方法。MVC的规则(convention)是把所有的控制器类放在一个名叫Controllers的文件夹中,这个文件夹是在我们创建这个项目的时候Visual Studio自动为我们创建好的。
为了为我们的项目创建一个控制器,在解决方案管理器中右击Controllers文件夹,在弹出的菜单中选择Add/Controller菜单。
在弹出的Add Controller窗口中输入HomeController。这是另外一个规则:控制器的名字应该分为两部门,第一部分为该控制器的描述,第二部门为Controller,也就是说,控制器的名字应该以Controller结尾。窗口中的Scaffolding options可以让我们使用公共函数的模板来创建一个控制器。现在我们不使用这个功能,因此在Template这个菜单中要确保选择的是Empty MVC controller这一项。点击Add按钮来创建一个新的控制器。
Visual Studio将会在Controllers文件夹下创建一个叫做HomeController的C#代码文件并且已经打开,默认代码如下所示,我们可以看到这个类的名字叫做HomeController并且该类继承于 System.Web.Controller.
The default contents of the HomeController class
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.Mvc;
6
7 namespace PartyInvites.Controllers
8 {
9 public class HomeController : Controller
10 {
11 public ActionResult Index()
12 {
13 return View();
14 }
15 }
16 }
初学MVC时一个很好的方法就是修改控制器类中的一些代码。修改HomeController.cs文件中的代码,修改后的代码如下所示:
Modifying the HomeController Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace PartyInvites.Controllers
{
public class HomeController : Controller
{
public string Index()
{
return "Hello World";
}
}
}
我们修改了名为Index的方法,让它返回一个“Hello World”的字符串。重新运行这个项目,浏览器中将会显示Index方法的结果,如下图所示。

理解路由
除了models,views和controllers外,MVC应用程序也使用ASP.NET的路由系统,这个路由系统决定了URLs如何路由到特定的控制器和特定的方法。当Visual Studio创建一个MVC项目,它将添加一些默认的路由让我们运行项目。我们可以用下面URL中的任意一个都将指向HomeController的Index方法:
- /
- /Home
- /Home/Index
也就是说,当我们在浏览器中输入的地址为http://yoursit/或者http://yoursite/Home时,它们返回的输出都来自于HomeController的Index方法。我们可以在自己的浏览器中输入不同的URL进行验证。同时,也可以是http://localhost:6130/,其中端口的部分可能不同。如果后面加上/Home或者/Home/Index并且点击返回,我们同样可以看到来自于MVC程序的“Hello World”。
这就是我们根据MVC的惯例做出的一个很好的事例。既然这样,这个惯例就是:我们要创建一个名字为HomeController的控制器,它将成为MVC程序的启动项。我们用Visual Studio创建项目时,默认的路由设置就是根据这个惯例来创建的。由于我们按照根据这个惯例,我们得到了支持上述列表中的URLs。
如果我们不遵循这个惯例,我们可以修改路由设置为我们所创建的控制器。在这个简单的示例中,我们使用的都是默认的配置。
提示:我们可以在Global.asax.cs文件中设置我们的路由信息。
---<本节完>---
ASP.NET MVC4 学习笔记-1的更多相关文章
- asp.net mvc4 学习笔记一(基本原理)
做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和as ...
- ASP.NET MVC4学习笔记路由系统概念与应用篇
一.概念 1.路由是计算机网络中的一个技术概念,表示把数据包从一个网段转发至另一网段.ASP.NET中的路由系统作用类似,其作用是把请求Url映射到相应的"资源"上,资源可以是一段 ...
- ASP.NET MVC4学习笔记之总体概述
断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去. 这篇文章大体介绍ASP.NET MVC ...
- ASP.NET MVC4学习笔记之Controller的激活
一. 高层相关类说明 当路由系统根据请求Url收集路由信息后,下一步就要将路由信息传给Controller激活系统,Controller激活系统负责实现了IController接口的Controlle ...
- ASP.NET MVC4学习笔记路由系统实现
一.路由实现 路由系统实际是一个实现了ASP.NET IHttpModule接口的模块,通过注册HttpApplication的PostResolveRequestCache 事件对Url路由处理.总 ...
- ASP.NET MVC4学习笔记
一.MVC简介
- ASP.NET MVC4学习笔记之Controller激活的扩展
一. 为什么要进行扩展 在前面的分析中,我们知道默认的Controller激活系统只能实例化无参构造函数的Controller类型,但在某些情况一下,我们希望某些服务的实例能够自动注入到Control ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- [ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异
[ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载.ID型别差异 原始码下载 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授 ...
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
随机推荐
- day128:MySQL进阶:MySQL安装&用户/权限/连接/配置管理&MySQL的体系结构&SQL&MySQL索引和执行计划
目录 1.介绍和安装 2.基础管理 2.1 用户管理 2.2 权限管理 2.3 连接管理 2.4 配置管理 3.MySQL的体系结构 4.SQL 5.索引和执行计划 1.介绍和安装 1.1 数据库分类 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(14)-Charles过滤网络请求
1.简介 在日常工作测试中,经常要抓包看请求的request,response是不是传的对,返回的字段值对不对,众多的请求中看得眼花缭乱,如何找到自己想要的请求,那么我们就需要过滤请求.Charles ...
- for of 和 for in 的区别
1 var arr = ["f", "6", 3, "a", 7]; 2 var obj = { name: "shun" ...
- js对象方法大全
JavaScript中Object构造函数的方法 Object构造函数的方法节 Object.assign() 通过复制一个或多个对象来创建一个新的对象. Object.create() 使用指定的原 ...
- Vue中使用Echarts 脱坑
1. 数据问题,不像官方实例所提供的数据直接写在options对应的数据源里,开发中应当是后端接口请求过来的数据,一般来说,会将echarts图标抽成组件的形式,需要的数据源通过父组件传给子组件,但是 ...
- ai问答:使用 Vue3 组合式API 和 TS 封装 websocket 断线重连
这是一个使用 Vue3 组合式 API 和 TS 封装 websocket 的例子 这个组件在 setup 中: 创建了一个 WebSocket 连接 定义了 sendMessage 方法发送消息 监 ...
- C#实现右下角托盘程序,默认不显示窗体,关闭窗体时隐藏而不退出
Windows右下角托盘程序是Windows系统的一大特色.在某些场景非常适用. 因业务需要实现一个后台程序,需要开机自动启动,默认不显示窗体,点击系统右下角托盘图标时显示窗体,关闭窗体时隐藏而不退出 ...
- 2022-10-05:在一个 n x n 的整数矩阵 grid 中, 每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度。 当开始下雨时,在时间为 t 时,水池中的水位为 t 。
2022-10-05:在一个 n x n 的整数矩阵 grid 中, 每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度. 当开始下雨时,在时间为 t 时,水池中的水位为 t . ...
- 2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。 package main import ( “fmt“ ) func main() { f
2022-07-28:以下go语言代码输出什么?A:AA:B:AB:C:BA:D:BB. package main import ( "fmt" ) func main() { f ...
- 2021-12-28:给定一个二维数组matrix,matrix[i][j] = k代表: 从(i,j)位置可以随意往右跳<=k步,或者从(i,j)位置可以随意往下跳<=k步, 如果matrix[i]
2021-12-28:给定一个二维数组matrix,matrix[i][j] = k代表: 从(i,j)位置可以随意往右跳<=k步,或者从(i,j)位置可以随意往下跳<=k步, 如果mat ...