1.创建项目

文件 --> 新建 --> 项目

Visual C# --> Web --> ASP.NET Web应用程序

MVC此时处于选中状态,勾选“添加单元测试”(可选择)。

完成以上步骤,基本的项目创建完成,此时点击“F5”可运行项目,如下图所示。(为方便标识,此后用url代替“localhost:20391”

MVC代表:模型-视图-控制器。

Models:标识该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类

Views  :应用程序动态生成HTML所使用的模版文件

Controllers:处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模版

2. 添加一个控制器类

(右击)Controllers文件夹 --> 添加 --> 控制器

选择“MVC 5 控制器-空”

为控制器添加名称

添加后在Controllers文件夹中会多出文件“MvcMusicStoreController.cs”,并且在文件夹Views下会多出“MvcMusicStore”文件夹

目录结构如下所示:

修改控制器“MvcMusicStoreController.cs”文件中的代码为:

 1     public class MvcMusicStoreController : Controller
2 {
3 public string Index()
4 {
5 return "This is my <b>default</b> action";
6 }
7
8 public string Welcome()
9 {
10 return "This is Welcome action method...";
11 }
12 }

此时重新运行程序,地址栏输入“url/MvcMusicStore

3.数据路由

ASP.NET MVC会调用不同的控制器类(和其内部不同的操作方法)这取决于传入URL。所使用的ASP.NET MVC的默认URL路由逻辑使用这样的格式来判定哪些代码以便调用:

可在App_Start/RouteConfig.cs文件内通过配置URL路由解析规则:

 1     public class RouteConfig
2 {
3 public static void RegisterRoutes(RouteCollection routes)
4 {
5 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
6
7 routes.MapRoute(
8 name: "Default",
9 url: "{controller}/{action}/{id}",
10 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
11 );
12 }
13 }

如果运行程序且不提供任何URL段,默认为“Home”的控制器和Index的操作方法,在上面的代码中的defaults部分指定

  • 第一部分的URL确定哪个控制器类会被执行。因此 /MvcMusicStore 映射到MvcMusicStoreController控制器类
  • 第二部分的URL确定要执行控制器类中的那个操作方法。因此 /HelloWorld/Index,会使得 MvcMusicStoreController控制器类的Index方法被执行。请注意,只需要浏览 /MvcMusicStore路径,默认情况下会调用Index方法。如果没有明确的指定操作方法,Index方法会默认的被控制器类调用。
  • 第三部分的URL段(Parameters参数)是路由数据

浏览 url/MvcMusicStore/Welcome 。Welcome方法会被运行并返回字符串“this is the welcome action method...”。

      默认的MVC映射为 /[Controller]/[ActionName]/[Parameter]对于这个URL,控制器类是MvcMusicStore,操作方法是Welcome,此处并未用到[Parameters]部分。

此处对Welcome方法进行修改,并使用了C#语言的可选参数功能,numTimes参数在不传值时,默认值为1。

1         public string Welcome(string name,int numTimes =1)
2 {
3 //return "This is Welcome action method...";
4 return HttpUtility.HtmlEncode("Hello " + name + ",NumTimes is :" + numTimes);
5 }

此时运行应用程序并浏览次URL(url/MvcMusicStore/Welcome?name=Long&numtimes=4)

上面的例子,没有用到URL段参数的部分(Parameters)。通过query strings传递name和numTimes的参数

用下面的代码替换“Welcome”的方法:

1    public string Welcome(string name,int ID =)
2 {
3 //return "This is Welcome action method...";
4 //return HttpUtility.HtmlEncode("Hello " + name + ",NumTimes is :" + numTimes);
5 return HttpUtility.HtmlEncode("Hello " + name + ",ID:" + ID);
6 }

这次URL第三部分的参数匹配了参数ID。

4.添加一个视图

控制器的默认程序是:

1    public ActionResult Index()
2 {
3 return View();
4 }

上面的Index方法使用一个视图模版来生成一个HTML返回给浏览器。控制器的方法(也被称为action method(操作方法)),如上面的Index方法,一般返回一个ActionResult(或从ActionResult所继承的类型),而不是原始的类型,如字符串。

      如果想使用控制器中默认的Index方法,则需要在对应的Views中添加视图文件。

Views/MvcMusicStore -->添加 -->“MVC5 View Page with(Layout Razor)”

在指定项名称中,输入“Index”

选择布局页(select layout page)”-->"_Layout.cshtml"-->"确定",然后在解决方案资源管理器中看到View/MvcMusicStore/Index.cshtml文件。

在Index.cshtml文件中添加以下代码

1 @{
2 ViewBag.Title = "Index";
3 }
4
5 <h2>Index</h2>
6
7 <p>Hello from our View Template!</p>

运行并调试程序,得到界面:

5.修改视图和布局页

首先,想要修改页面顶部的链接“Application name”。这段文字是每个页面的公用文字,即使这段文字出现在每个页面上,但是实际上它仅保存在工程里的一个地方。

在解决方案资源管理器里找到 Views/Shared文件夹,打开_Layout.cshtml文件。此文件称为布局页面(Layout page),并且其他所有的子页面,都共享使用这个布局页面。

6.将数据从控制器传递给视图

控制器响应请求来的URL。控制器类是写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模版可以被控制器用来产生格式化过的HTML从而返回给浏览器。

控制器负责给任何数据或者对象提供一个必须的视图模版,用这个视图模版来Render返回给浏览器的HTML。最佳的做法是:一个视图模版应该永远不会执行业务逻辑或者直接和数据库进行交互。相应的,一个视图模版应该只和控制器所提供的数据进行交互。维持这种“隔离关系”。

1 public ActionResult Index()
2 {
3 return View("NotIndex");
4 }

对于这样的编码,操作方法依然在/Views/Home目录中查找视图,但选择的不再是Index.cshtml,而是NotIndex.cshtml。

如果需要制定完全位于不同目录结构中的视图,编码如下:

1 public ActionResult Index()
2 {
3 return View("~/Views/Example/Index.cshtml");
4 }

7.添加一个模型

Entity Framework(通常称为EF)是支持代码优先(Code First)的开发模式。代码优先允许通过编写简单的类来创建对象模型。

在解决方案资源管理器,(右键单击)模型文件夹 --> 添加 --> 类

输入类名“MusicStore”,并为类添加属性:

1     public class MusicStore
2 {
3 public int ID { get; set; }
4 public string SongName { get; set; }
5 public string SingerName { get; set; }
6 public DateTime PublishDate { get; set; }
7 public decimal Price { get; set; }
8 }

类中的每一个属性对应表中的每一列。在这个类中,添加下面的MusicStoreDBContext类:

1     using System.Data.Entity;
2
3 public class MusicStoreDBContext : DbContext
4 {
5 public DbSet<MusicStore> Movies { get; set; }
6 }

MusicStoreDBContext类代表Entity Framework的音乐数据库类,这个类负责在数据库中获取、存储、更新、处理MusicStore类的实例。MusicStoreDBContext继承自Entity Framework的DbContext基类。

8.SQL Server Express LocalDB

LocalDB是一个SQL Server Express轻量级版本的数据库引擎。它在用户模式下启动、执行。LocalDB运行在一个特殊的SQL Server Express的执行模式,即允许能够使用MDF文件数据库。通常情况下,LocalDB的数据库文件都保存在web项目的App_Data文件夹下面。

注:在生产环境的Web应用程序中,不推荐使用SQL Server Express。尤其是LocalDB不应该用于Web应用程序的生产环境,因为它没有被设计要使用IIS,但是LocalDB的数据库能很容易的迁移到SQL Server或SQL Azure。

打开应用程序根目录的Web.config文件

找到数据库的连接设置代码:

1   <connectionStrings>
2 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMusicStore-20170228045043.mdf;Initial Catalog=aspnet-MvcMusicStore-20170228045043;Integrated Security=True"
3 providerName="System.Data.SqlClient" />
4 </connectionStrings>

做如下修改:

1   <connectionStrings>
2 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMusicStore-20170228045043.mdf;Initial Catalog=aspnet-MvcMusicStore-20170228045043;Integrated Security=True"
3 providerName="System.Data.SqlClient" />
4 <add name="MusicStoreDBContext" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MusicStore.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
5 </connectionStrings>

9.从控制器访问数据模型

注:进行该步骤之前,应先编译程序,这样才可以使用之前的模型类及上下文类。

Controllers文件夹 --> 新增 --> Controller --> 选择控制器

设置模型类、数据上下文类并设置控制器名称。

完成以上步骤,Visual Studio会创建以下文件和文件夹:

  • 控制器文件夹中的MusicStoreController.cs文件
  • 项目视图文件夹下的MusicStore文件夹
  • 在新的Views/MusicStore文件夹中创建Create.cshtml、Delete.cshtml、Details.cshtml、Edit.cshtml和Index.cshtml文件。

运行程序,url输入“url/MusicStore”

菜鸟一枚,但有一颗不断进取的心; 兴趣所至,相信自己终会成功!!!!! 加油,imstrive
转:https://www.cnblogs.com/imstrive/p/6480118.html

ASP.NET MVC5入门指南的更多相关文章

  1. ASP.NET MVC5入门指南(1)*入门介绍

    以下指南说明了什么是ASP.NET MVC,并说明了如何入门. ASP.NET MVC 5入门 入门 添加控制器 添加视图 添加模型 创建连接字符串并使用SQL Server LocalDB 从控制器 ...

  2. ASP.NET MVC5入门指南(2)*入门介绍*创建您的第一个应用

    开始吧 首先安装Visual Studio 2017.然后,打开Visual Studio. Visual Studio是一个IDE或集成开发环境.就像使用Microsoft Word编写文档一样,您 ...

  3. ASP.NET MVC5入门1之项目创建

    本博文参考ASP.NET MVC5入门指南,下载链接: ASP.NET_MVC5_入门指南 1.创建项目 文件 --> 新建 --> 项目 Visual C# --> Web --& ...

  4. 数迹学——Asp.Net MVC4入门指南(2):添加一个控制器

    自嘲一下......万事还是得从官方的入门开始 由于找不到适合新新手的MVC入门实例所以回过头来做一下微软的 <Asp.Net MVC4入门指南>. 只有把自己放在太阳下暴晒,才知道自己有 ...

  5. Asp.Net MVC5入门学习系列③

    原文:Asp.Net MVC5入门学习系列③ 添加一个视图(View) 接着上篇的入门系列,上面解说添加一个简单Controller(控制器),这里我们简单的在来添加一个View(视图)来展示我们Co ...

  6. Asp.Net MVC5入门学习系列②

    原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用 ...

  7. Asp.Net MVC5入门学习系列①

    原文:Asp.Net MVC5入门学习系列① 现在直接开始MVC5的学习系列,学习资源来自Micrsoft. 开始使用Asp.Net MVC 5 打开Visual Studio 2013,然后新建一个 ...

  8. Asp.Net MVC5入门学习系列⑦

    原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...

  9. Asp.Net MVC5入门学习系列⑤

    原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的 ...

随机推荐

  1. (转)MapReduce Design Patterns(chapter 7 (part 2))(十四)

    External Source Input Pattern Description 这种模式不从hdfs加载数据,而是从hadoop以外系统,例如RDB或web service加载. Intent 想 ...

  2. ios Label TextFile 文本来回滚动 包括好用的三方

    通常显示不够了,比如八个字.只能显示6个字 .产品要求 来回滚动 下面有两种 方法 : 一种UIScrollView  一种 View动画  如果不能满足你  请点击这个 https://github ...

  3. Zabbix server 3.2安装部署

    zabbix server 前提环境: CentOS 6 Lnmp php需要的包(bcmath,mbstring,sockets,gd,libxml,xmlwriter,xmlreader,ctyp ...

  4. Android studio 添加背景图片问题

    问题:下载了JPG格式的图片,Windows下直接改变后缀名,'变为'PNG. 输入 adroid:background"@mipmap/bg" 编译报错!!!老是不行 解答:图片 ...

  5. css3公共样式

    温馨提示:一下css封装,建议按需使用,否则会造成很大的代码冗余,且很多样式会造成不符合预期的效果,建议合理使用 <a href="https://meyerweb.com/eric/ ...

  6. shell脚本中执行sql的例子

    这个例子演示了如何在shell脚本中执行多个sql来操作数据库表. #! /bin/sh USER_HOME=/home/`whoami` . /etc/profile if [ -f ${USER_ ...

  7. 推荐近乎免费的调试神器——OzCode

    当一只断点打在 Visual Studio 的代码编辑器中,程序命中断点的那一刻,调试才刚刚开始……这个时候忙碌的手在键盘和鼠标之间来回跳跃,试图抓住每一次单步执行带来的状态改变. 如果命中断点的那一 ...

  8. Working out

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...

  9. SpringBoot @ConfigurationProperties报错

    idea报错如下: Not registered via @EnableConfigurationProperties or marked as Spring component less... (C ...

  10. RF第二讲--Selenium2Library库的简单实用

    现在对于RF的应用方法已经有很多书介绍了,网上也可以搜到免费的电子书可以学习.今天就简单和大家介绍一下RF的用法之一,就是基于Selenium2Library库的使用. 1.首先需要安装Seleniu ...