加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

从零开始学Asp.Net MVC4(2)添加控制器

[日期:2013-03-16] 作者: 来源: [字体: ]

上节说了ASP.net mvc的开发环境并创建了第一个应用程序,那么到底什么是MVC呢?M(Model):模型;V(View):视图;C(Controller)控制器,这三者是MVC的重要因素。MVC是一种程序构架方式、开发模式。

具体来讲:

Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。 

Views: 应用程序动态生成 HTML所使用的模板文件。 

Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。

今天我们先来学习如何新建一个控制器(Controller)。在解决方案资源管理器中,用鼠标右键单击控制器文件夹,然后选择“添加控制器“

clip_image001命名新的控制器为“HelloWorldController”。保留默认的模板为“Empty MVC controller”,并单击“ 添加“。

clip_image002clip_image003

 

将文件中的内容改为:

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...";

}

}

}

在这个例子中控制器方法将返回一个字符串的HTML。本控制器被命名HelloWorldController代码中的第一种方法被命名为Index。让我们从浏览器中调用它。运行应用程序(按F5或CTRL + F5)。在浏览器的地址栏中输入路径“HelloWorld“。(例如,在下面的示例中: http://localhost:1234/HelloWorld)页面在浏览器中的表现如下面的截图。在上面的方法中,代码直接返回了一个字符串。你告诉系统只返回一些HTML,系统确实这样做了!

clip_image004

根据传入的URL,ASP.NET MVC调用不同的控制器类(和它们之中不同的操作方法)。使用ASP.NET MVC默认的URL路由逻辑格式,以确定哪些代码会被调用:

/[Controller]/[ActionName]/[Parameters]

第一部分的URL确定那个控制器类会被执行。因此 /HelloWorld映射到HelloWorldController控制器类。第二部分的URL确定要执行控制器类中的那个操作方法。因此 /HelloWorld/Index,会使得HelloWorldController控制器类的Index 方法被执行。请注意,我们只需要浏览 /HelloWorld路径,默认情况下会调用Index方法。如果没有明确的指定操作方法,Index方法会默认的被控制器类调用。

浏览http://localhost:xxxx/HelloWorld/Welcome。Welcome方法会被运行并返回字符串:"This is the Welcome action method...”。 默认的MVC映射为/[Controller]/[ActionName]/[Parameters] 对于这个URL,控制器类是HelloWorld,操作方法是Welcome,您还没有使用过URL的[Parameters] 部分。

clip_image005让我们稍微修改一下这个例子,以便可以使用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);

}

运行您的应用程序并浏览此URL(http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)。你可以对参数name 和numtimes 尝试不同的值。 ASP.NET MVC model binding system 会自动将地址栏中URL里的 query string映射到您方法中的参数。

clip_image006在这两个例子中,控制器一直在做着MVC中“VC”部分的职能。 也就是视图和控制器的工作。该控制器直接返回HTML内容。通常情况下,您不会让控制器直接返回HTML,因为这样代码会变得非常的繁琐。相反,我们通常会使用一个单独的视图模板文件来帮助生成返回的HTML。下一节,我们将看看asp.net mvc如何能做到这一点的。

关键词:MVC  控制器 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
本文评论   查看全部评论 (2)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2016/12/25 14:21:09
http://www.blue1000.com/bkhtml/c17/2012-12/71031.htm 结婚证婚人发言稿 http://www.135995.com/show/18944.html 考研经验交流会发言稿 http://www.135995.com/show/8664.html
第 1 楼
* 匿名 发表于 2016/12/24 14:12:35
http://www.blue1000.com/bkhtml/c17/2012-12/71031.htm 学校世界艾滋病日宣传活动总结 http://www.135995.com/show/1210.html 学校国庆节征文活动总结 http://www.135995.com/show/1199.html