[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作

1. 使用Visual Studio 2015创建Web App

(1)文件>新建>项目,选择Web>ASP.NET Web 应用程序

(2)在新项目MyFirstWebApp对话框中,选择ASP.NET 5模板>Web Application

由于是RC版,这里的”添加单元测试“暂时不能选,上面的WebForms MVC WebAPI将合并,前面一节介绍过了,因此也不需要再选。点确定,完成一个MVC6项目创建。

(3)运行项目

F5在调试模式下运行,或 Ctrl+F5非运行模式下运行

小技巧:启动应用程序 Ctrl+F5(非调试模式)允许您更改代码,文件保存,刷新浏览器,查看代码的变化。很多开发者喜欢使用非调试模式来快速启动应用程序并查看变化。

默认项目是一个响应式的页面,当浏览器窗口缩小或在小屏幕设备上打开时,可以看到导航显示,如下:

2.项目结构

我们先看一下MVC6和MVC5的项目结构差异:

下面是MVC5项目结构

下面是MVC6项目结构

可以,看到和MVC5相比,项目结构差异比较大

(1)项目文件变成了xproj(MVC5项目文件是csproj)

(2)程序配置文件变为config.json(MVC5则是web.config)

(3)增加了project.json 主要用于项目配置,负责程序集、项目部署设置,部分功能类似于MVC5的package.config.

(4)package.json 这个文件在MVC6中是NPM的配置文件,基于Nodejs的包管理器。

(5)gulpfile.js 是gulp配置文件,gulp是基于Nodejs的Javascript任务管理器,在ASP.NET 5中主要管理NPM和Bower中的内容。

(6)Stratup.cs 程序启动入口,类似于原来的Global.asax

(7)Project_Readme.html 项目说明文件,没什么具体作用。

(8)wwwroot 静太资源文件(如css,images,js等)的存放目录

(9)Dependencies Bower和NPM的依赖管理包。

(10)References 程序集引用,和以前类似,但现在有版本区分(如ASP.NET 5.0 和ASP.NET Core 5.0)

想深入了解MVC6项目结构的朋友,可以参考文章:http://www.cnblogs.com/TomXu/p/4496407.html

3.添加控制器(Controller)

在项目文件夹Controllers右击,选添加>新建项

在打开的对话框中,选择MVC控制器类,取名HelloWorldController.cs

我们打开刚才创建的控制器HelloWorldController.cs更改为如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc; // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 namespace MyFirstWebApp.Controllers
{
public class HelloWorldController : Controller
{ // GET: /HelloWorld/ public string Index()
{
return "这是我的默认动作...";
} //
// GET: /HelloWorld/Welcome/ public string Welcome()
{
return "我是一个欢迎方法...";
}
}
}

让上面的方法返回一个字符串,F5运行,然在地址后面加上helloworld,刷新一下浏览器,效果如下:

我们打开Startup.cs文件,看一下路由

先找到如下代码:

路由设置的是默认 控制器=Home,方法默认为 Index 参数默认为 id

路由设置格式为 :/[Controller]/[ActionName]/[Parameters]

我们上面指定的控制器,则打开默认的方法Index,如果我们指定方法,运行结果如下:

接着我们看一下参数:

增加如下方法到HelloWorldController.cs

  public string Welcome2(string name, int ID = )
{
return HtmlEncoder.Default.HtmlEncode(
"hello,name:" + name + ",id:" + ID);
}

注意:上面使用的代码htmlencoder.default.htmlencode保护应用程序免受恶意输入(如JavaScript)。

ID有一个默认值,我们传入参数ID时,默认显示1

传入两个参数:

4.添加视图(View)

(1)先在项目的View目录上创建一个跟控制器同名的文件夹 HelloWorld

比如:视图名为HelloWorld,则对应的控制器名为:HelloWorldController

(2)在视图文件夹HelloWorld中创建视图名为:ViewShow.cshtml,

替换视图文件如下:

@{
ViewData["Title"] = "Index";
} <h2>Index</h2> <p>Hello from our View Template!</p>

并在HelloWorldController,添加同名方法,代码如下:

 public IActionResult ViewShow()
{
return View();
}

然后运行如下图所示地址:

控制器方法View() 为返回视图

5.添加模型(Modle)

模型添加实际是添加一个类文件,这里只是简单创建一个实体,后面会完整介绍

右击项目文件夹Models,添加一个类文件,名为:Movie.cs

内容如下:

public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}

到这里一个模型创建完成。

6.总结:

本篇内容非常容易理解,介绍了MVC6基本的控制器、视图、模型的创建及最简单的路由设置,虽然基础,但这些是我们学习MVC的基础,后面有机会继续再介绍MVC的应用。

7.完整源代码下载

Git地址:https://github.com/yubinfeng/BlogExamples

==============================================================================================

返回目录

<如果对你有帮助,记得点一下推荐哦,如有有不明白或错误之处,请多交流>

<对本系列文章阅读有困难的朋友,请先看 《.net 面向对象编程基础》和 《.net 面向对象程序设计进阶》 >

<转载声明:技术需要共享精神,欢迎转载本博客中的文章,但请注明版权及URL>

.NET 技术交流群:467189533

==============================================================================================

[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作的更多相关文章

  1. 模型-视图-控制器模式(MVC模式,10种常见体系架构模式之一)

    一.简介: 架构模式是一个通用的.可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题.架构模式与软件设计模式类似,但具有更广泛的范围. 模型-视图-控制器模式,也称为MVC模式.是软件 ...

  2. 模型 - 视图 - 控制器(MVC)详解

    模型视图控制器(MVC)一个相当实用且十分流行的设计模式.作为一位称职码农,你不可能没听说过吧. 不幸的是它难以让人理解. 在本文中,我将给出我认为是MVC的最简单的解释,以及为什么你应该使用它. 什 ...

  3. 设计模式-结构型模式, mvc 模型视图控制器模式(8)

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO.它 ...

  4. [框架模式]经典的模型视图控制器模式MVC

    参考:<设计模式> http://blog.csdn.net/u010168160/article/details/43150049 百度百科 引言: Model(模型)是应用程序中用于处 ...

  5. MVC模式 - Model-View-Controller -(模型-视图-控制器)

    MVC(Model View Controller) MVC是一种设计典范.它是用一种业务逻辑.数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件上,在需要改进和个性化定制界面及用户交 ...

  6. MVC(模型-视图-控制器)的理解

    在 MVC 中,模型对象表示数据(例如日历应用程序中的待办事项或绘图程序中的图形),视图对象知道如何显示模型对象所表示的数据,控制器对象充当模型和视图的媒介.在“HelloWorld”应用程序中,模型 ...

  7. 模型-视图-控制器 (MVC)

    在MVC中 ,模型代表数据和业务规则, 视图包含了用户界面元素,例如文本,表单等 控制器则管理模型和视图中的通信

  8. 学习模型-视图-控制器MVC模式

    1.MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分 ...

  9. ---web模型 --mvc和模型--struts2 入门

    关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...

  10. ASP.NET MVC 5 入门-2控制器、路由

    一.创建项目: 上起始页,选择新项目. 在中新的项目对话框中,右侧语言类别选择C# ,然后项目类型选择Web,然后选择ASP.NET Web 应用程序 (.NET Framework) 项目模板. 将 ...

随机推荐

  1. xamarin(3.9.236)里DATETIMENOW的错误。

    [ERROR] FATAL UNHANDLED EXCEPTION: System.EntryPointNotFoundException: monodroid_get_system_property ...

  2. MachineKey 操作 之 获取 MachineKey

    MachineKey获取介绍 对MachineKey进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证.本次讲的是如 ...

  3. windowsservice

    1.创建 windows服务 项目  文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服务 ...

  4. jquery函数理解与运用

    javascript中有多种不用的方式去理解函数,函数类似于我们以前学过的数学函数,但是在程序设计中,我是按照下面的方式进行理解: 函数的理解: 函数是一个代码块,内容被包含在函数内,通常我们是把一些 ...

  5. BZOJ 3262 陌上花开 ——CDQ分治

    [题目分析] 多维问题,我们可以按照其中一维排序,然后把这一维抽象的改为时间. 然后剩下两维,就像简单题那样,排序一维,树状数组一维,按照时间分治即可. 挺有套路的一种算法. 时间的抽象很巧妙. 同种 ...

  6. [软件推荐]快速文件复制工具(Limit Copy) V4.0 绿色版

    快速文件复制工具(Limit Copy)绿色版是一款智能变频超快复制绿色软件. 快速文件复制工具(Limit Copy)功能比较完善,除了文件复制还可以智能变频,直接把要复制的文件拖入窗口即可,无需手 ...

  7. 530 User cannot log in, home directory inaccessible.

    服务器是winserver,控制面板-用户账号里新建了一个Ftp账户用来做ftp连接.可在本地连接FTP总提示530 User cannot log in, home directory inacce ...

  8. jQuery技巧

    回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide 简单的手风琴 使两个DIV同等高度 在浏览 ...

  9. 20161023 NOIP 模拟赛 T2 解题报告

    Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...

  10. asp.net,cookie,写cookie,取cookie

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...