首页 > 代码库 > MVC中的Controller
MVC中的Controller
Controller是MVC模式中的三个核心元素之一.
MVC模式中的Controller主要负责响应用户的输入, 并在响应时修改Model.
MVC提供的是方法调用的结果, 而不是动态生成的页面.
下面新建一个项目名为 MVC Music Store , 以此为例说明一下MVC中的Controller.
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 7 namespace MvcMusicStore.Controllers 8 { 9 public class HomeController : Controller10 {11 12 public ActionResult Index()13 {
// 将默认内容修改为"I like cake!" 后即可直接显示在主页上. 14 ViewBag.Message = "I like cake!";15 return View();16 }17 18 public ActionResult About()19 {20 ViewBag.Message = "Your app description page.";21 22 return View();23 }24 25 public ActionResult Contact()26 {27 ViewBag.Message = "Your contact page.";28 29 return View();30 }31 }32 }
HomeController 类的Index方法负责决定当浏览网站首页时触发的事件.
下面创建一个新的控制器并命名为 StoreController, 作如下修改:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcMusicStore.Controllers{ public class StoreController : Controller { // // GET: /Store/ public string Index() { return "Hello from Store.Index()"; } //get: /Store/Browse public string Browse(string genre) { return "Hello from Store.Browse() "; } public string Details() { return "Hello from Store.Details()"; } }}
不需要额外配置,浏览到/Store/Details就可以执行StoreController类中的Details方法,这就是操作中的路由.
判断一个类是否是Controller的唯一方式,就是看该类是否继承自System.Web.Mvc.Controller.
Controoller 才是MVC中真正的核心, 每一个请求都必须通过控制器处理. 有些请求是不需要Model和View的.
public string Browse(string genre) { string message = HttpUtility.HtmlEncode("Store.Browse, Genre= " + genre); return message; }
利用HttpUtility.HtmlEncode来预处理用户输入. 这样就能阻止用户用链接向视图中注入JavaScript代码或HTML标记.
控制器可将查询字符串作为其操作方法的参数来接受.
ASP.NET MVC 的默认路由约定,就是将操作方法名称后面URL的这个片段作为一个参数, 该参数的名称为ID. 如果操作方法中有名为ID的参数, 那么ASP.NET MVC 会自动将这个URL片段作为参数传递过来.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。