从零开始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

原文地址:https://www.cnblogs.com/janes/p/2281949.html