前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

原创
作者头像
KenTalk
修改于 2018-10-03 03:01:01
修改于 2018-10-03 03:01:01
1.6K00
代码可运行
举报
文章被收录于专栏:Ken的杂谈Ken的杂谈
运行总次数:0
代码可运行

一、前言

1、本文主要内容

  • 使用dotnet cli创建基于解决方案(sln+csproj)的项目
  • 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目
  • Visual Studio Code Solution插件( vscode-solution-explorer)基础使用介绍
  • 基于 .NET Core web项目模板构建 ASP.NET Core MVC Web应用
  • ASP.NET Core MVC框架上手

2、本教程环境信息

软件/环境

说明

操作系统

Windows 10

SDK

2.1.401

ASP.NET Core

2.1.3

IDE

Visual Studio Code 1.27

浏览器

Chrome 69

3、前置知识

你可能需要的前置知识

  • MVC框架/模式介绍

https://baike.baidu.com/item/mvc

  • 控制反转(IOC)原则与依赖注入(DI)

ASP.NET Core 默认集成了DI。所有官方模块的引入都要使用DI的方式引入。

https://baike.baidu.com/item/IOC

二、项目准备

1、项目创建

.NET平台的项目构建有两个概念:解决方案(Solution)、项目(Project)。

所有的项目开发,不论是Web项目,还是控制台应用程序,都必须基于Project来构建。而Solution的作用就是把Project组织起来

如果项目简单,我们只需要基于Project来构建项目即可,但是当项目需要分层解耦时,我们如果在Project创建目录来隔离并不能起到硬性隔离的作用,毕竟只要在一个Project中就可以引用。而通过Project来分层就可以做到硬性隔离的效果。而且基于Project的代码复用更简洁合理(编译产出.dll可以在其他项目中引用等)

解决方案(Solution)+ 项目(Project)就相当于用Maven构建的Java项目中,顶层Project和Project的关系。

  • 创建项目目录
代码语言:javascript
代码运行次数:0
运行
复制
#创建项目目录
mkdir Ken.Tutorial

#进入项目目录
cd Ken.Tutorial
  • 创建解决方案文件
代码语言:javascript
代码运行次数:0
运行
复制
dotnet new sln -n Ken.Tutorial
  • 创建Web项目
代码语言:javascript
代码运行次数:0
运行
复制
dotnet new web -n Ken.Tutorial.Web
  • 将项目添加到解决方案中
代码语言:javascript
代码运行次数:0
运行
复制
dotnet sln add Ken.Tutorial.Web

2、VS Code 配置

  • 安装基于Solution开发 .NET Core 项目的扩展

扩展名

说明

vscode-solution-explorer

创建、删除、重命名或移动解决方案、解决方案文件夹和项目。管理项目引用。

VS Code 扩展管理页直接搜索扩展名安装即可,本次安装的版本是:0.2.33

三、VS Code开发基于解决方案的项目说明

1、VS Code项目配置

菜单:文件->打开文件夹,选择项目目录打开项目

因为已经安装了VS Code的C#扩展和Solution扩展,所以也会提示缺失相关配置

C#扩展提示:

Required assets to build and debug are missing from ‘helloweb’. Add them?

这是因为项目缺少编译、调试配置,选择Yes即可

vscode-solution-explorer扩展提示:

Would you like to create the vscode-solution-explorer templates folder?

这是因为vscode-solution-explorer插件需要项目中的解决方案提供相应的模板。

所有插件默认的配置文件,都会放在.vscode文件夹中

资源管理器中除了默认的面板,我们安装的Solution插件还会提供友好的Solution Explorer。这个视图的风格,有VS(Visual Studio)的既视感。

后续项目开发完全可以隐藏默认资源管理器,使用Solution Explorer就好。

2、Solution Explorer菜单介绍

  • Solution鼠标右键菜单介绍

菜单

快捷键

说明

Add existing project

/

添加已存在的项目(Project)

Add new project

/

新建项目(Project)

Create folder

Ctrl+Shift+F

创建文件夹

Open File

/

打开解决方案文件(.sln)

Rename

F2

修改解决方案名称

Build

/

编译解决方案(Solution)

Clean

/

清理解决方案(Solution)的编译输出

Pack

/

解决方案(Solution)打包

Publish

/

发布解决方案(Solution)

Restore

/

恢复解决方案(Solution)

Test

/

执行解决方案(Solution)中的单元测试

  • Project鼠标右键菜单介绍

菜单

快捷键

说明

Add package

/

添加package

Add reference

/

引用解决方案中的其他项目

Create file

Ctrl+Shift+A

创建文件

Create folder

Ctrl+Shift+F

创建文件夹

Move

/

移动项目(Project)

Remove project from solution

Del

从解决方案中移除项目(Project)

Paste

Ctrl+V

粘贴

Open File

/

打开项目文件(.csproj)

Rename

F2

修改解决方案名称

Build

/

编译项目(Project)

Clean

/

清理项目(Project)的编译输出

Pack

/

项目(Project)打包

Publish

/

发布项目(Project)

Restore

/

恢复项目(Project)

Test

/

执行项目(Project)中的单元测试

四、ASP.NET Core MVC 输出HelloWorld

1、引入 ASP.NET Core MVC

修改应用启动类(Startup.cs),引入MVC模块并配置默认路由

代码语言:javascript
代码运行次数:0
运行
复制
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        //引入MVC模块
        services.AddMvc();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc(routes =>
        {
            //配置默认路由
            routes.MapRoute(
                name: "Default",
                template: "{controller}/{action}",
                defaults: new { controller = "Home", action = "Index" }
            );
        });
    }
}

2、创建Controller与Action

  • 创建HomeController

在Ken.Tutorial.Web项目中添加文件夹:Controllers,并在文件夹中创建类HomeController类型选择为:class

代码语言:javascript
代码运行次数:0
运行
复制
using System;

namespace Ken.Tutorial.Web.Controllers
{
    public class HomeController
    {
    }
}
  • 引用MVC命名空间,并继承与Controller
代码语言:javascript
代码运行次数:0
运行
复制
using System;
using Microsoft.AspNetCore.Mvc;

namespace Ken.Tutorial.Web.Controllers
{
    public class HomeController : Controller
    {
    }
}

ControllerName=Home

  • 定义Action:Index
代码语言:javascript
代码运行次数:0
运行
复制
using System;
using Microsoft.AspNetCore.Mvc;

namespace Ken.Tutorial.Web.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return Content("Hello World!");
        }
    }
}

ActionName=Index

3、项目启动与访问测试

  • 修改协议与端口

修改Ken.Tutorial.Web项目Properties文件夹中launchSettings.json文件,使用HTTP协议并监听端口5001

代码语言:javascript
代码运行次数:0
运行
复制
"Ken.Tutorial.Web": {
  "commandName": "Project",
  "launchBrowser": true,
  "applicationUrl": "http://localhost:5001",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
  • 启动项目

按下F5启动项目,项目启动成功后,VS Code会帮我们打开默认浏览器并访问:http://localhost:5001

之所以显示HomeController中Index(Action)的返回内容,是因为我们前面定义了默认路由可以从{controller}/{action}访问路径对应Action,而我们又定义了默认值:

controller = "Home", action = "Index"

代码语言:javascript
代码运行次数:0
运行
复制
routes.MapRoute(
    name: "Default",
    template: "{controller}/{action}",
    defaults: new { controller = "Home", action = "Index" }
);

我们也可以通过http://localhost:5001/home/index显示访问

五、ASP.NET Core 视图基础使用

1、创建返回View的Action

HomeController添加Action:Time

代码语言:javascript
代码运行次数:0
运行
复制
public IActionResult Time()
{
    //将当前服务器时间放入ViewBag中
    ViewBag.ServerTime = DateTime.Now;
    return View("Time");
}

2、创建视图文件

在项目中创建文件夹 Views,并创建对应的HomeController视图子文件夹:Home

之所以这样创建文件夹,是因为当我们返回视图时,只指定ViewName,而不指定完整的路径。ASP.NET Core MVC框架会默认在以下项目目录中依次读取视图文件:

  • /Views/{ControllerName}
  • /Views/Shared
  • /Pages/Shared

如果找到视图文件便会渲染视图,如果没找到便会抛出异常。

创建视图文件 /Views/Home/Time.cshtml

代码语言:javascript
代码运行次数:0
运行
复制
@ViewBag.ServerTime  -ken.io

视图渲染时@ ViewBag.ServerTime会输出Action中赋值的内容,

-ken.io会被作为字符串渲染

3、启动项目测试

按下F5启动项目,项目启动成功后在浏览器中输入http://localhost:5001/home/time并访问,将会看到以下输出:

六、备注

1、附录

  • 本文代码示例

https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02


本文首发于我的独立博客:https://cloud.tencent.com/developer/article/1578420

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
使用ASP.NET Core MVC框架构建Web应用
ASP.NET Core 默认集成了DI。所有官方模块的引入都要使用DI的方式引入。
conanma
2021/12/29
1.5K0
ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/11/12
3K0
ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门
ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-06
KenTalk
2018/12/21
2.2K0
ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门
ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
本篇代码基于以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/11/09
2.4K0
ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2019/04/12
1.7K0
ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/10/16
2.5K0
ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
本篇代码基于上一篇进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/10/09
1.2K0
ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2019/04/01
1.3K0
ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门
ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用
https://ken.io/serie/dotnet-core-quickstart
KenTalk
2018/09/26
1.9K0
ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用
ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/12/29
2.3K0
ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
这样入门asp.net core,如何
本文章主要说明asp.net core的创建和简单使用。 一、使用到的命令 dotnet new :创建项目(解决方案,类库,单元测试等),如:dotnet new web dotnet add package 添加一个nuget的引用 dotnet test:运行测试 dotnet build:编译项目 dotnet sln add:将项目添加到解决方案 dotnet add reference:对此项目添加项目引用 二、建立空项目 在测试目录下运行 dotnet new web -n baseWeb,创
sam dragon
2018/03/28
2.2K0
这样入门asp.net core,如何
.NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
一、前言 本篇开发环境? 1、操作系统:CentOS7(因为ken比较偏爱CentOS7) 2、SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识 1、了解如何通过Hyper-V安装CentOS虚拟机 2、了解CentOS7基础命令/常用命令 二、安装 .NET Core SDK 1、安装必要依赖 sudo yum -y install libunwind libicu 2、下载(SDK列表) cd /home/downloads curl -sSL -o dotnet-
KenTalk
2018/09/11
1.6K0
玩转VSCode-完整构建VSCode开发调试环境
目前使用VS2019开发.NET Core应用,一直有一个想法,在VS Code中复刻VS的开发环境,同时迁移到VS Code。
李明成
2020/02/12
2.3K0
.NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
一、前言 本篇开发环境? 1、操作系统: Windows 10 X64 2、SDK: .NET Core 2.0 Preview 二、安装 .NET Core SDK 1、下载 .NET Core 下载地址:https://www.microsoft.com/net/download/core 根据自己电脑情况选择对应版本即可 .NET CORE 2.0下载地址:https://aka.ms/dotnet-sdk-2.0.0-preview2-win-x64 2、安装 微软出品,一键安装,只需一步,看图
KenTalk
2018/09/11
1.7K0
.NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
【ASP.NET Core 基础知识】--MVC框架--MVC入门
MVC(Model-View-Controller)是一种软件架构模式,用于设计和组织应用程序的代码。它将应用程序分为三个主要组成部分:
喵叔
2024/01/10
9330
【ASP.NET Core 基础知识】--MVC框架--MVC入门
【ASP.NET Core 基础知识】--MVC框架--Views和Razor语法
在ASP.NET Core的MVC(Model-View-Controller)框架中,View 扮演着呈现用户界面的角色。View负责展示应用程序的数据给用户,并接收用户的输入。它与Model和Controller协同工作,通过模型绑定从Controller获取数据,然后使用Razor语法或其他视图引擎将数据呈现为用户可见的HTML。
喵叔
2024/01/11
1.3K0
Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
本文将主要演示怎么将多个Asp.Net MVC项目部署到一个IIS站点中的例子,主要使用的是Asp.Net MVC提供的区域的功能。
老马
2022/05/10
9120
Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
.net Core 1.0.1 下的Web框架的的搭建过程step by step
环境:ubuntu+VScode 数据库:mysql ,ORM框架:chloe 官网
FreeTimeWorker
2020/08/31
4900
.net Core 1.0.1 下的Web框架的的搭建过程step by step
Ken的杂谈从ASP.NET Core 2.1迁移到3.1
Ken的杂谈从2017年就开始采用 .NET Core作为开发框架,当时用的还是 .NET Core 2.0。 随后,.NET Core 2.1(LTS) 在2018年发布,Ken的杂谈又紧跟版本升级到 .NET Core 2.1 后面.NET Core3.0发布,但不是LTS版本,再加上我又懒,所以就干脆等到 .NET Core 3.1(LTS)正式发布,才来升级。毕竟这也是 .NET Core的最后一个主版本,下一个版本就是大一统的 .NET 5了。
KenTalk
2020/01/20
1.5K0
一小时学会ASP.NET Core,马上构建你的第一个Web应用
欢迎进入ASP.NET Core的快速入门指南!ASP.NET Core是一款跨平台的Web应用程序开发框架,它具有高度的灵活性和性能优势,适用于构建各种规模和类型的Web应用程序。让我们开始吧!
Echo_Wish
2023/11/30
1.3K0
推荐阅读
相关推荐
使用ASP.NET Core MVC框架构建Web应用
更多 >
目录
  • 一、前言
    • 1、本文主要内容
    • 2、本教程环境信息
    • 3、前置知识
  • 二、项目准备
    • 1、项目创建
    • 2、VS Code 配置
  • 三、VS Code开发基于解决方案的项目说明
    • 1、VS Code项目配置
    • 2、Solution Explorer菜单介绍
  • 四、ASP.NET Core MVC 输出HelloWorld
    • 1、引入 ASP.NET Core MVC
    • 2、创建Controller与Action
    • 3、项目启动与访问测试
  • 五、ASP.NET Core 视图基础使用
    • 1、创建返回View的Action
    • 2、创建视图文件
    • 3、启动项目测试
  • 六、备注
    • 1、附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档