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可以基于任何目的使用 ...
随机推荐
- 如何在SpringBoot项目中兼容Jersey和SpringMVC框架?
文章目录 Jersey框架介绍 常用的注解: SpringBoot中SpringMVC兼容Jersey 整合Jersey REST(Representational State Transfer)表象 ...
- 云原生时代崛起的编程语言Go并发编程实战
@ 目录 概述 基础理论 并发原语 协程-Goroutine 通道-Channel 多路复用-Select 通道使用 超时-Timeout 非阻塞通道操作 关闭通道 通道迭代 定时器-TimerAnd ...
- C#自行实现安装卸载程序(不使用官方组件)
正规软件建议还是使用官方的标准安装程序组件,因为官方的标准安装/卸载组件能更好的与操作系统衔接,安装和卸载流程更加规范. 今天提供一种野路子,全用代码实现安装卸载器. 需要写一个程序,包含安装器.卸载 ...
- Unity快速接入bugly, 支持Unity2021
鹅厂提供的bugly官方demo工程打包后台也查不到日志,N年不更新(官方已经说不再维护),为此本人做了部分修改测试,提供一个快速接入工程的demo. Unity2021因为版本原因腾讯官方工程不能使 ...
- NFS共享存储实战
NFS共享存储实战 目录 NFS共享存储实战 NFS基本概述 为什么要使用共享存储 企业中文件服务器(共享存储) NFS应用场景 集群没有共享存储时 集群有共享存储 NFS实现原理 NFS的函数 本地 ...
- 大家都在用-神奇的Markdown格式
概述 Markdown 是一种轻量级标记语言,它可以使我们专注于写作内容,而不用过多关注排版,很多博主.作家等都用它来撰写文章~ 本文将给各位小伙伴介绍 Markdown 语法的使用,本篇文章索奇就是 ...
- 2023-03-14:读取摄像头,并且显示视频。代码用go语言编写。
2023-03-14:读取摄像头,并且显示视频.代码用go语言编写. 答案2023-03-14: 大体流程如下: 导入所需的库和包. 初始化 ffmpeg 和 SDL2 库. 打开摄像头并创建 AVF ...
- 2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i
2022-08-03:以下go语言代码输出什么?A:2:B:3:C:1:D:0. package main import "fmt" func main() { slice := ...
- 这款全自动自适应工具你用过了吗?autofit.js请求加入你的战场!
前段时间做了一个自适应的小工具(autofit.js) 经过一段时间的试用,同学们发现了工具存在的一些问题,我自己也发现了一些,这篇文章是针对这些问题撰写的. autofit.js autofit.j ...
- 整合vxgPlayer使chrome支持vxg_media_player播放rtsp视频
目前有一个关于接入海康监控进行视频融合的项目需求,按理说在前端技术发展如此迅速的今天,使用web播放一个视频应该是不算什么难事,只是万事都有意外,因很多视频厂家的监控数据都不是普通的mp4啥的,所以使 ...