zoukankan      html  css  js  c++  java
  • ASP.NET MVC 第一章 我们的第一个MVC例子

    好久、好久没有讲博客了,之前都忘记有这个技术博客了,只是顾自己去Google和baidu里面去找资料。后来发现有些东西还是讲下来自己会更加清楚明白。以后每周都会逼迫自己写写技术文章。废话到此为止
    -----------------------------------------------------------------------------------------------
    今天我们讲讲ASP.NET MVC,我使用的是MVC3基于VS2012,当然大家可以在VS2010里面去下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=4211
    然后接下来是我个人经验,如果有错误欢迎大家指正。
    首先我们打开VS2012创建一个ASP.NET MVC 3项目。在创建使用VS2012里面会弹出一个对话框里面有3个选项
    1:空(本人一般使用此选项,因为这个选项不会在项目中创建其它垃圾文件和代码)
    2:Internet应用程序(带有使用窗体身份验证的帐户控制器的默认 ASP.NET MVC 3 项目。
    注:示例辅助学习项目,里面会自带一些文件和代码。)在这里不多介绍此选项大家有兴趣就自己创建一个看看。
    3:Intranet应用程序(此选项同样跟第二个选项差不多的,此选项中比第二个多个功能是它帮您创建了基于Windows身份验证)在这里不多介绍此选项大家有兴趣就自己创建一个看看。
    我们还是创建一个空的项目吧。
    以下创建空项目时会包含几个选项
    1:视图引擎我们选择Razor此为MVC3的语法,当然这里可以不用Razor可以选择ASPX,当ASPX时基于MVC2语法。接下来的课程都是基于Razor语法的。(默认选项)
    2:另外问我们是否使用HTML5语义标记。(本课程知识讲解MVC3,所以我们还是默认选项)
    接下来我们讲解主要是入门讲解章节
    本章主要讲解是:1)MVC基本讲解
      2)创建项目后目录层次和作用
      3)简单代码演示
    一、MVC基本讲解
     什么是MVC(MVC全称是:M-Model、V-View、C-Controller)中文翻译(模型->视图->控制器)。接下我想说明它们之间的关系。Model主要是负责数据模型和数据转化,View主要负责UI(User Interface)补充:在这里我想说说其实用户使用的每个View按钮都是对应的一个Action,Controller主要负责用户操作,在每个View上面的按钮都会对应一个Controller里面的一个方法(在此我们称为Action)。
     它们之间的关系是View通过按钮调用后台的Controller里面的Action进行得到客户想要的操作。Controller就会对前台的数据进行操作,当用户需要操作数据时Controller就会发送用户View上面的以处理好的值给Model。Model主要是处理实体类和数据文件(如:LINQ to SQL、Entity Framework实体框架)。
    以上就是对MVC的一个简单讲解。

    二、创建项目后目录层次和作用

    打开VS2012 创建 Web里面有ASP.NET MVC3 Web 应用程序。

    项目结构

    项目结构讲解
    App_Data(这个文件夹大家都应该很熟悉了。在WebForms中都可能用到,此文件夹用于存储数据文件如:Access、*.sql脚本文件、数据库备份文件等)
    Content(本文件夹负责一些CSS和主题文件。大家可以点进去看看)
    Controller(本文件夹一眼就看出来就是我们的MVC里面C了,上面提到我们这个文件夹主要的作用,负责对UI的操作。补充:一个View对应一个Controller)
    Models(本文件夹也就是我们的MVC里面M了,主要负责的是实体数据了。同时对Controller要操作的对象数据而提供的)
    Scripts(本文件夹属于想自动创建的文件夹主要里面包括一些脚本文件:主要是帮助开发者下载现在广泛使用的Jquery、AJAX异步操作的脚本文件)有兴趣的自己可以对每个文件打开研究里面代码
    View(本文件夹就是与用户打交道的文件了里面都是存放界面文件,里面已经有VS为我们创建的文件了可以直接在项目中使用如:Shared目录下面的Error.cshtml等(补充:如我们使用的是MVC2的项目里面文件后缀名为.ASPX,如我们使用的MVC3的项目里面放的文件后缀名为.cshtm。补充2:如果我们是VB.net语法的.vbhtml))
    Global.asax 此文件是全局文件,里面有一些代码是我们以后要谈的路由(Route)在此处暂时不讲解和修改默认就行了。
    Web.Config XML文件也是属于全局文件主要用户一些配置,在ASP.NETWebForms里面一样可以配置数据库等等配置。与WebForms不一样的是里面详细描述了MVC的一些信息。如:有兴趣自己可以研究每一条XML语句是做什么的。
    MVC官方有句说话叫做约定大于语法,所以这句话在我理解就是MVC就是一套微软提供的框架并且大于语法(语法只是对开发上使用,而通过这框架是进行了代码和UI分离)
    以上是对MVC3项目里面的目录和结构的讲解
    三、代码演示
    我先创建一个Controller,创建步骤右键点击Controller目录->添加->控制器(注意:选择后弹出框里面控制器名称:Default1Controller,只用修改Default1后面的是约定就是上面我说的约定大于语法),修改成HomeController。在此我们就创建了一个控制器了
    然后我们就要创建一个View,创建步骤右键我们创建一个Home的文件夹来保存我们的View,然后在Home文件右键添加视图,修改视图名称为Index。下面其它默认不修改(介绍:视图引擎上面我说到了我们使用的MVC3所以我们这里是Razor语法)。创建强类型视图(此处有点遗忘了好像是使用自定义别人写的窗体,此处忘记如果有错误下一章我会提到和解释下)创建为分部视图:这个就是问您是否要把此View是否设置成ViewUserControl我们这里暂时不用修改。使用布局或母版页:此处是问您是否要把这个页面设置成部件页面,也就是这里如果有框架页面或者母版页都可以使用,这里暂时用不着。
    以上2个部分都创建成功后我们就开始我们的一个MVC3的例子
    此例子就显示下字符串把“我们的一个ASP.NET MVC3示例”加当前时间
    最后我们进行开发吧,我刚才在上面提到一个View功能代表一个Controller里面的Action现在在我们里面的Index方法里面添加一句话ViewBag.Message = "我们的一个ASP.NET MVC3示例 " + DateTime.Now.ToString();return View();代表返回式当前的View,里面也可以写其它的View名称。如:return View("xxxx");或return View("Display");
    然后我们要输出这个字符串,因为我们这里写的代码只有后台代码明白,但是前台代码不认识,我们必须告诉前台你要输出字符串。然后我们找到我们的View在页面调用@ViewBag.Message。@个符号就是我们今后要学习的Razor语法,今天就介绍这一个语法的使用。
    补充:ViewBag.此处可以申请您需要的对象(就等于是申请C#字符串一样 如:string str="C#",这里string换成了ViewBag。)

    Controller/HomeController文件

    Controller/HomeController文件

    复制代码
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 
     7 namespace Example_MVC.Controllers
     8 {
     9     public class HomeController : Controller
    10     {
    11         //
    12         // GET: /Home/
    13 
    14         public ActionResult Index()
    15         {
    16             ViewBag.Message = "我们的一个ASP.NET MVC3示例 " + DateTime.Now.ToString();
    17             //return View("Display");//Home/Display View页面
    18             return View();//Index View页面
    19         }
    20 
    21     }
    22 }
    复制代码

    View/Home/Index.cshtml文件

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>@ViewBag.Message</h2>

    如果 return View("Display")页面

    View/Home/Display.cshtml文件 跟上面的 Index.cshtml文件

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>@ViewBag.Message</h2>

    下载代码

  • 相关阅读:
    视频4K技术的解读
    C语言野指针
    获取一个整数所有的质因数(C语言实现)
    乘法口诀表(C语言实现)
    完全平方数(C语言实现)
    Socket网络编程系列教程序
    求1-2/3+3/5-4/7+......49/97和(C语言实现)
    反射
    Cloneable接口和Object的clone()方法
    Comparable和Comparator的区别
  • 原文地址:https://www.cnblogs.com/XiaoLongZhang/p/3413896.html
Copyright © 2011-2022 走看看