ASP.NET MVC3-第02节-添加一个Controller (C#)
前言
----------------------------
----------------------------
MVC是“model-view-controller”的缩写,也就是 模型-视图-控制器 ,MVC是一个“分离关注点”的架构,这将会变得容易开发和维护
MVC基本程序包括:
控制器(Controllers):是一个从程序中获取参数,接收数据,和做特殊处理,制定视图,然后响应给客户端的类
模型(Models):是一个体现(represent )数据的引用,和使得数据的正确性,对数据进行验证的类
视图(Views):你的程序使用的一个HTML响应的动态生成的模版文件,就是一个用来生成HTML的模版文件
我们将会通过这些说明来想你展现怎么使用他们来创建一个MVC程序
我们来创建一个控制器类,在解决方案中Solution Explorer, 右击”Controllers “ 文件夹,然后选择 添加 --控制器Add Controller

给你的新的控制器起名为”HelloWorldController“,模版那里 选择 空控制器 Empty controller,然后 点击 添加 (Add)

注意在解决方案中 一个新的文件被创建:HelloWorldController.cs,该文件在IDE是打开的 ![]()
在里面的 public class HelloWorldController 块 ,创建两个方法 向下面的代码
---------
这个控制器将会返回HTML的字符代码作为一个列子
using System.Web;
using System.Web.Mvc; namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/ public string Index()
{
return "This is my <b>default</b> action...";
} //
// GET: /HelloWorld/Welcome/ public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
你的控制器命名为 HelloWorldController 这个第一个方法命名为 ”Index“
我们来在浏览器中 运行 (按F5 或者 Ctrl+F5).,在浏览器中的地址栏 出现 "HelloWorld" 例如这样的地址http://localhost:43246/HelloWorld
这个页面 看上去如下图的截图, 在我们看到 一些HTML标签 也能被浏览器渲染
<b>default</b> |
ASP.NET MVC 创建的不同的控制器类, 它们里面有有不同action方法, 根据来路URL的不同,然后被不同的路由规则匹配出请求的action,路由规则如下
/[Controller]/[ActionName]/[Parameters]
第URL的第一部分表示要执行的控制器类,因此/HelloWorld 这个是对应HelloWorldController 这一个类
URL的第二部分是类要执行的方法,因此/HelloWorld/Index 这一个对应的是HelloWorldController 里面的 Index 方法
如果通过 浏览器 访问”http://localhost:xxxx/HelloWorld/Welcome.“
Welcome 方法将会被调用 返回This is the Welcome action method..." 的字样,默认的MVC路由规则是
/[Controller]/[ActionName]/[Parameters].
URL的第三部分是[Parameters] 这个是网控制器的方法中 传递一个参数
让我们来修改这个例子,让我们能够通过URL向控制器传递一些参数
例如 这样的请求/HelloWorld/Welcome?name=Scott&numtimes=4 改变你的Welcome 方法 添加两个参数 如下方代码
注意代码使用的是 C# 属性的参数 同时 numTimes 参数 默认是1,如果没给他传值的话
public string Welcome(string name, int numTimes = 1) { |
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes); |
} |
运行程序和访问地址http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4
你可以看到不同的名称和时间 name and numtimes
路由系统会自动的匹配出地址栏请求的参数 传给你的方法
通过上面的列子,控制层是负责 MVC中的VC 就是 视图和控制器的工作 控制器直接返回HTML 通常你的控制层是不会直接返回HTML的
因此这样会变得非常累赘的代码, 取而代之的是使用 模版引起 来展现相应HTML 我们下一课程会讲 ....
如果更多的学习资料,可以到--ASP.NET MVC专题...
谢谢大家支持....后续还有九篇文章,都比较权威的....需要原文的可以到这里...
ASP.NET MVC3-第02节-添加一个Controller (C#)的更多相关文章
- AWVS漏洞测试-02节-添加一个简单的新闻系统
实现一个简单的新闻发布系统 有登录 注册 添加新闻 浏览新闻 评论新闻 新闻列表 这些基本功能 使用asp.net webform 首先是登录页 protected void Button1_Clic ...
- Asp.net MVC3 中,动态添加filter
Asp.net MVC3 中,动态添加filter filter是attribute,不支持泛型,传入的参数必须是固定的值.总之很受attribute本身的限制. 发现一篇老外的文章,动态设置filt ...
- ASP.NET MVC3入门教程之第一个WEB应用程序
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=91&extra=page%3D1 上一节,我们已经搭建好了AS ...
- 00024500-0000-0000-C000-000000000046错误,在sys.web配置节添加一个用户给web站点。
<identity impersonate ="true" userName="administrator" password="123456& ...
- 经典ASP.NET MVC3.0入门详解
http://blog.csdn.net/csh624366188/article/details/7064269 :由于本文原在word文档里编写,写本文章时运用了大量截图,直接复制到博客里,没有显 ...
- ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)
http://www.jquery001.com/asp.net-mvc3-instance-add-update-delete2.html 上篇我们在 ASP.NET MVC3 中实现了添加操作,由 ...
- ASP.NET MVC3快速入门——第四节、添加一个模型
在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的“模型”部分.我们将使用一个.NET Framework的被称之为“Entiry Framework”的数据访问技术来 ...
- asp.net mvc3 数据验证(四)—Remote验证的一个注意事项
原文:asp.net mvc3 数据验证(四)-Remote验证的一个注意事项 前几篇把asp.net mvc3 中基于Model的主要数据验证的方法都已经讲完了,本节纯粹只是讲一个我 ...
- 【翻译转载】【官方教程】Asp.Net MVC4入门指南(2):添加一个控制器
2. 添加一个控制器 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-c ...
随机推荐
- 使用C++/libCurl/Jsoncpp读取arcgis wmts 服务(restful模式)
前言: 最近工作需要将arcgis的wmts服务接入我们的3DGis系统平台,要求用户只输入一个rest模式的wmts服务地址,系统即可自动获取并解析其元数据信息,生成wmts图层,并渲染显示.经过多 ...
- [leetcode]Interleaving String @ Python
原题地址:https://oj.leetcode.com/problems/interleaving-string/ 题意: Given s1, s2, s3, find whether s3 is ...
- 【API规范】OpenAPI规范
OpenAPI规范 openAPI 3.0_百度搜索 OpenAPI Specification 2.0 - CSDN博客 APP相关_API 列表_OpenAPI 2.0_开发指南_移动推送-阿里云 ...
- spark 指定相关的参数配置 num-executor executor-memory executor-cores
num-executors参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行.Driver在向YARN集群管理器申请资源时,YARN集群管理器会尽可能按照你的设置来在集群的 ...
- 转:从头开始编写基于隐含马尔可夫模型HMM的中文分词器
http://blog.csdn.net/guixunlong/article/details/8925990 从头开始编写基于隐含马尔可夫模型HMM的中文分词器之一 - 资源篇 首先感谢52nlp的 ...
- Mahout初体验
Mahout运行版本: mahout-0.5, mahout-0.6, mahout-0.7,是基于hadoop-0.20.2x的. mahout-0.8, mahout-0.9,是基于hadoop- ...
- MFC中的KillTimer
在Dialog中添加一个Timer. 用如下的代码停用一个Timer总是不好用: void CDialog2::OnTimer (UINT TimerVal) { ////////////////// ...
- Idea不能新建package的解决
右键–>new –> Mark Directory As –> Sources Root (idea需要修改一下目录的性质,改为源文件 )
- codeforces 551 C GukiZ hates Boxes
--睡太晚了. ..脑子就傻了-- 这个题想的时候并没有想到该这样-- 题意大概是有n堆箱子从左往右依次排列,每堆ai个箱子,有m个人,最開始都站在第一个箱子的左边, 每个人在每一秒钟都必须做出两种选 ...
- 结构体指针之 段错误 具体解释(segmentation fault)
一个网友问了我一个问题.一个C程序执行出现了段错误,这个问题非常好.非常多刚開始学习的人都easy犯这个错误,详细代码例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3 ...