创建一个 ASP.NET MVC 4 Web Application 项目,将程序命名为 MvcMusicStore,如下图:

控制器

       MVC 模式中,控制器主要负责响应用户的输入、并且在响应时修改模型、提供相关视图的输出数据。

       请求的 URL 首先被路由机制截获,以决定实例化哪一个控制器,调用哪个操作方法,并未该方法提供需要的参数。然后,控制器的方法决定使用哪个视图,并对该视图进行渲染

       添加一个新的 Empty 控制器,命名为 StoreController:

       创建 Browse、Details 操作方法,并将 3 个方法的返回值由 ActionResult 改为 String,并运行查看效果:

public class StoreController : Controller

{

    //

    // GET: /Store/

    public string Index()

    {

        return "Hello from Store.Index()";

    }

 

    //

    // GET: /Store/Browse

    public string Browse()

    {

        return "Hello from Store.Browse()";

    }

 

    //

    // GET: /Store/Details

    public string Details()

    {

        return "Hello from Store.Details()";

    }

}

       尽管在 ASP.NET MVC 中模型和视图非常有用,但控制器才是真正的核心。每一个请求都必须通过控制器处理,然而其中有些请求是不需要模型和视图的

       修改 Browse 方法如下:

// GET: /Store/Browse?genre=?Disco

public string Browse(string genre)

{

    string message = HttpUtility.HtmlEncode("Store.Browse,Genre = " + genre);

    return message;

}

       HttpUtility.HtmlEncode() 来预处理用户输入,这样能阻止用户用链接向视图注入 JavaScript 代码或 HTML 标记,比如 /Store/Browse?Genre=<script>window.location='http://hacker.example.com'</script>

       修改 Details 方法,使其读取和显示一个名为 ID 的输入参数,这里将 ID 值嵌入到 URL 中:

// GET: /Store/Details/5

public string Details(int id)

{

    string message = "Store.Details, ID = " + id;

    return message;

}

       控制器操作感觉就像是 Web 浏览器直接调用控制器类中的方法。类、方法和参数都被具体化为 URL 中的特定路径片段或查询字符串。

控制器(Controller) – ASP.NET MVC 4 系列的更多相关文章

  1. ASP.NET MVC学习系列(二)-WebAPI请求

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  2. ASP.NET MVC学习系列(二)-WebAPI请求(转)

    转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...

  3. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  4. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  5. ASP.NET MVC学习系列(二)-WebAPI请求 转载https://www.cnblogs.com/babycool/p/3922738.html

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  6. 模型(Model)– ASP.NET MVC 4 系列

           为 MVC Music Store 建模        在 Models 目录中为专辑.艺术家.流派建模: public class Album { public virtual int ...

  7. ASP.NET MVC 入门系列教程

    ASP.NET MVC 入门系列教程 博客园ASP.NET MVC 技术专题 http://kb.cnblogs.com/zt/mvc/ 一个居于ASP.NET MVC Beta的系列入门文章,有朋友 ...

  8. 表单和 HTML 辅助方法– ASP.NET MVC 4 系列

           这里有一个疑问,诸如在文本编辑器中输入 HTML 元素如此简单的任务,也需要任何帮助吗?的确,输入标签名称是很容易的事,但是确保 HTML 页面链接中的 URL 指向正确的位置.表单元素 ...

  9. ASP.NET MVC深入浅出系列

    一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑 ...

随机推荐

  1. centos7安装jdk8

    1.查看是否已经安装了jdk rpm -qa|grep java 表示没有安装jre 如果已经安装请先卸载 2.查看可安装的java环境 yum list java* 3.安装 java-1.8.0- ...

  2. java基础知识--CLASSPATH

    如果在一个类中用到了另外一个类(new了一个新对象). package com.xxx.xxx; public class Cat { } //下面是另外的文件 public class Dog { ...

  3. 【zz】matlab 求差集

    matlab判断2个数组中不同元素--setdiff c = setdiff(A, B) 返回在A中有,而B中没有的值,结果向量将以升序排序返回.在集合论中,c = A - B.A和B也可以是字符串细 ...

  4. 史上最简单的socket

    1. client import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import ja ...

  5. JS总结 循环 退出循环 函数

    while循环 while(条件){条件成立就执行的代码} *一般条件变量需要递增,否则会进入死循环(无限循环),浏览器会崩溃甚至电脑死机 例如,逐行输出1-100的数字 var i = 1; whi ...

  6. C# 3D效果饼状图的绘制

    第一步:放置图表控件 拖动工具栏的Chart控件到界面上 然后选中控件,设置Series属性,将ChartType属性改为pie 第三步:设置3D效果 选择控件,设置ChartArea属性,如下 设置 ...

  7. SE Homework 1 —An Error Impressed Me

    在对两个对象进行比较.判断是否相等时,直接用 == 放在两个对象中间,例如下面的代码: Infor i1 = new Infor(111,"AA"); Infor i2 = new ...

  8. 如何使用Charles抓包-- 入门篇

    下载地址 注意:首先需要下载java的运行环境支持(一般用burp的人肯定也都有装java环境).装好java环境后,可以直接去百度搜索并下载charles的破解版,下载到破解版之后,里面一般会有注册 ...

  9. background-origin和background-clip的区别

    background-origin和background-clip是CSS3内新增加的属性,其实一个是对背景图片的放置,另一个是对背景图片的剪裁. background-origin和backgrou ...

  10. 项目中创建单元测试—VS2012

    我们在每个项目的开发过程中,开发完一个功能,自己首先需要测试一下,VS提供了很方便的测试功能,可以很容易的创建单元测试,但是在VS2012中类名上点击右键没有『创建单元测试』这个菜单,需要先进行设置一 ...