从零开始MVC3—Music Store实例&Controller

简介:

1. 引言

MVC主要包括Model,View和Controller三部分,首先简单学习一下Controller,以MusicStore为实例,先有一个初步印象。

2. Music Store简介

MusicStore是一个非常好的学习实例,而且提供了非常详细的操作步骤。下载地址:http://mvcmusicstore.codeplex.com/

它是一个简单的音乐商店,主要包含三个功能模块:购物,结算和后台管理。

首先打开完整版,看一下运行效果:

clip_image002

clip_image003

3. 创建Music Store项目

然后从头开始,一步步搭建我们的音乐商店。

新建项目,选项设置如下图所示:

clip_image005

  • l Project template->Empty
  • l View engine->Razor
  • l User HTML5 semantic markup->选中

点击OK后查看解决方案发现已经创建了相应的文件夹。

clip_image006

4. Controller

在Web Form开发的时候,网站中的URL经常和网页文件所在的磁盘目录相对应的,例如:www.buy.com/Products.aspx可能对应着某个目录下的名为“Products.aspx”的文件。但是在MVC中不同,URL不是对应着具体的文件,而是对应着Controller类中的Controller Action方法。它负责处理HTML请求,操作用户的输入,进行数据读写,决定客户端的响应(如显示HTML,显示文件,页面跳转等)。

① 添加首页HomeController:右击Contoller->Add->Controller

clip_image008

clip_image010

我们看到生成的HomeController代码如下:

namespace MusicStore.Controllers
{
    public class HomeController : Controller
    {
        // 
        // GET: /Home/ 
        public ActionResult Index()
        {
            return View();
        }
    }
}

我们修改一下Index()方法如下:

clip_image011

运行效果:

clip_image012

② 添加商店StoreController,然后添加三个响应URL请求的方法:

public class StoreController : Controller
   {
       public string Index()
       {
           return "Hello from Store.Index()";
       }
       public string Browse(string genre)
       {
           string strMsg =HttpUtility.HtmlEncode( "Store.Browse,Genre=" + genre);
           return strMsg;
       }
       public string Details(int ID)
       {
           string strMsg = "Store.Details,ID=" + ID;
           return strMsg;
       }
   }

③运行效果:
  • Index()方法:

clip_image013

  • Browse方法中传递参数的方式很容易理解,跟在WebForm开发的时候一样都是【?key=value】

clip_image014

  • Details()方法中传递参数的
  • 形式比较特殊,因为MVC中处理URL中ActionMethod后面的参数时,默认对应的参数名称为“ID”。

clip_image015


    本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/archive/2011/12/09/2281949.html,如需转载请自行联系原作者




相关文章
|
前端开发 Java 数据安全/隐私保护
深入理解 Spring MVC Controller —— 请求参数获取
前言 接上篇《深入理解 Spring MVC Controller —— 请求映射》,上篇主要介绍了处理器方法及请求映射的定义。有了处理器方法 Spring MVC 就可以对请求进行处理,有了请求映射 Spring MVC 就能知道哪些请求应该由哪些处理器方法来处理。
651 0
深入理解 Spring MVC Controller —— 请求参数获取
|
4月前
|
XML 前端开发 JavaScript
SpringMVC中单独配置<mvc:default-servlet-handler/> 导致 Controller失效
SpringMVC中单独配置<mvc:default-servlet-handler/> 导致 Controller失效
75 0
|
8月前
|
设计模式 JSON 前端开发
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
39 0
|
10月前
|
前端开发 Java Spring
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
136 0
|
10月前
|
前端开发 Java Spring
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
95 0
|
前端开发 Java 索引
Spring MVC Controller 方法参数 Map 的实现类是什么?
问题 题主问题描述如下: 在SpringBoot中,Controller的参数中有Map接口类型的,请问他的实现类是什么? 突发奇想,在SpringBoot中,Controller的参数中有Map接口类型的
349 0
Spring MVC Controller 方法参数 Map 的实现类是什么?
|
XML JSON 前端开发
深入理解 Spring MVC Controller —— 请求映射
前言 基于注解的 Spring MVC 的项目中,Controller 应该是我们接触最多的类了,这里提到的 Controller 并非是某一个具体的接口或类,而是一种概念,只要我们我们定义的类中包含了处理请求的方法,这个类就可以称为 Controller,而处理请求的方法被称为处理器方法。
621 0
深入理解 Spring MVC Controller —— 请求映射
|
设计模式 安全 前端开发
面试官:Spring MVC 如何保证 Controller 的并发安全性?面试必问。。
单例模式(Singleton)是程序设计中一种非常重要的设计模式,设计模式也是Java面试重点考察的一个方面。
278 0
面试官:Spring MVC 如何保证 Controller 的并发安全性?面试必问。。
|
前端开发 Java 数据处理
【Spring MVC】(二)Controller、View之间的映射与参数传递
【Spring MVC】(二)Controller、View之间的映射与参数传递
409 0
|
前端开发 Java Spring
HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)【享学Spring MVC】(下)
HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)【享学Spring MVC】(下)
HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)【享学Spring MVC】(下)