官方学习资料

搭建空MVC框架

1.创建一个空模板

2.创建文件夹 Controllers、Models、Views

3.在Controllers文件夹下创建HomeController.cs

选择Controllers文件夹,右键-添加-新建项,选择MVC控制器类,添加HomeController.cs。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; namespace RazorMvc.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
}
}

4.在Models文件夹下创建HomeModel.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace RazorMvc.Models
{
public class HomeModel
{
}
}

5.在Views文件夹中添加_Layout.cshtml

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>@ViewData["Title"]</title>
</head>
<body>
@RenderBody()
@RenderSection("Scripts", false)
</body>
</html>

6.在Views文件夹中添加_ViewStart.cshtml

@{
Layout = "~/Views/_Layout.cshtml";
}

7.在Views文件夹中添加_ViewImports.cshtml

@using 项目命名空间
@using 项目命名空间.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

8.调整Startup.cs

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();//注册服务
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
} app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseSession(); app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}

9.调整完成后可保存为模板(可跳过,等后面完事一起存)

EF Core搭建

1.安装 EF Core

  • 工具 > NuGet 包管理器 > 包管理器控制台
  • 运行 Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • 运行 Install-Package Microsoft.EntityFrameworkCore.Tools
  • 运行 Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
  • 听话全安了

2.从现有数据库创建模型

Scaffold-DbContext"Server=.;Database=test;uid=test;pwd=test;"Microsoft.EntityFrameworkCore.SqlServer-OutputDirModels

可以通过将-Tables参数添加到上述命令来指定要为哪些表生成实体。 例如-Tables Blog,Post

3.删除内联上下文配置

  • 打开Models\BloggingContext.cs
  • 删除OnConfiguring(...)方法

4.在 Startup.cs 中注册并配置上下文

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(); var connection = @"Server=.;Database=test;uid=test;pwd=test;";
services.AddDbContext<testContext>(options => options.UseSqlServer(connection));
}

5.系统生成测试页面

  • 在“解决方案资源管理器”中,右键单击“控制器”文件夹,然后选择“添加”->“控制器…”
  • 选择“视图使用 Entity Framework 的 MVC 控制器”,然后单击“确定”
  • 将“模型类”设置为“Test”,将“数据上下文类”设置为“TestContext”
  • 单击“添加”
  • 可运行起来测试数据库连接

使用Redis存储Session

//根据自己需要修改配置文件,此处直接https://www.cnblogs.com/shouwu/p/6180652.html

1.添加nuget程序包

Microsoft.AspNetCore.Session;
Microsoft.AspNetCore.DataProtection.Redis;
Microsoft.Extensions.Caching.Redis.Core;
Microsoft.AspNetCore.Http; //使用Session时有扩展方法

 Install-Package Microsoft.Extensions.Configuration
  Install-Package Microsoft.Extensions.Configuration.Json


2.在appsettings.json中添加Redis配置

{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"WebConfig": {
"Redis": {
"Connection": "ip:6379,allowAdmin=true,password=Test",
"InstanceName": "名称"
},
"SessionTimeOut": ""
}
}

3.在startup.cs类中,按如下例子添加代码

public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

ConfigureServices() 增加 

#region 使用Redis保存Session
var redisConn = Configuration["WebConfig:Redis:Connection"];
var redisInstanceName = Configuration["WebConfig:Redis:InstanceName"];
//Session 过期时长分钟
var sessionOutTime = Configuration.GetValue<int>("WebConfig:SessionTimeOut", ); var redis = StackExchange.Redis.ConnectionMultiplexer.Connect(redisConn);
services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Test-Keys");
services.AddDistributedRedisCache(option =>
{
//redis 连接字符串
option.Configuration = redisConn;
//redis 实例名
option.InstanceName = redisInstanceName;
});
#endregion //添加Session并设置过期时长
services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(sessionOutTime); });

Configure() 在app.UseMvc之前增加

app.UseSession();

Redis存储Session

HttpContext.Session.SetString("UserName", userName);
HttpContext.Session.GetString("UserName");

普通存储Redis

public IDistributedCache _RCache { get; set; }
public MyToolController(IDistributedCache RCache)
{
_RCache = RCache;
}
_RCache.SetString("UserName", UserName);
_RCache.GetString("UserName");

附加

  • JS/CSS 压缩 Install-Package YUICompressor.NET
  • JS压缩
    JavaScriptCompressor jsCompressor = new JavaScriptCompressor
    {
    //使用utf-8 编码文件
    Encoding = Encoding.UTF8
    };
    jsCompressor.Compress(str);
  • Css压缩
    CssCompressor cssCompressor = new CssCompressor();
    cssCompressor.Compress(str);
  • 安装结束后包数量,无任何参考价值hhh

.net Core 2.1 MVC+EF+Redis搭建的更多相关文章

  1. .net core Asp.net Mvc Ef 网站搭建 vs2017 1)

    1)开发环境搭建 首先下载安装vs2017  地址 :https://www.visualstudio.com/zh-hans/downloads/ 安装勾选几项如下图 ,注意点在单个组件时.net ...

  2. MVC MVC+EF快速搭建

    MVC+EF快速搭建 一.准备: vs2017(个人用的) 二.开始MVC+EF之旅吧: 1.创建mvc项目: Web-ASP.NET Web Application(.NET Framework)  ...

  3. C# MVC+EF—结构搭建

    近期做了MVC+EF的项目,现在项目完结了,抽个时间写个小DOM总结一下,顺便加深理解. 一.新建MVC项目,结构是这样的

  4. C# MVC+EF—页面搭建

    上一篇文章搭建了基本结构,现在来搭建页面 一.新建控制器 Controllers=>添加=>控制器=>MVC 5控制器=>命名为DepartmentController pub ...

  5. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这 ...

  8. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  9. 转载——Asp.Net MVC+EF+三层架构的完整搭建过程

    转载http://www.cnblogs.com/zzqvq/p/5816091.html Asp.Net MVC+EF+三层架构的完整搭建过程 架构图: 使用的数据库: 一张公司的员工信息表,测试数 ...

随机推荐

  1. Android JNI开发之NDK环境搭建

    参考:http://www.cnblogs.com/yejiurui/p/3476565.html 谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本, ...

  2. (总结)RHEL/CentOS 7.x的几点新改变

    一.CentOS的Services使用了systemd来代替sysvinit管理 1.systemd的服务管理程序: systemctl是主要的工具,它融合之前service和chkconfig的功能 ...

  3. 弹窗:popwindow 4部分

    弹窗:popwindow 四部分 ①windows.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...

  4. 求最小正整数x,A^x=1(mod M)求阶模板

    整数的阶:设a和n是互素的正整数,使得a^x=1(mod n)成立的最小的正整数x称为a模n的阶 //求阶模板:A^x=1(mod M),调用GetJie(A,M) //输入:10^10>A,M ...

  5. 【BZOJ3563/3569】DZY Loves Chinese II 线性基神题

    [BZOJ3563/3569]DZY Loves Chinese II Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以 ...

  6. 第一课 第一个nodejs程序

    这就是我们的第一个程序了 在控制台会输出:hello 我们需要运行该文件 开始->运行 cmd 进入我们的程序目录 我的是D:/nodejs/hello.js 进入程序目录cd D:/nodej ...

  7. Data Decisions: DSP vs. DMP

    http://www.cmo.com/features/articles/2016/3/9/data-decisions-dsp-vs-dmp.html As marketers assess the ...

  8. 洛谷 2679 [NOIP 2015] 子串

    题目戳这里 一句话题意 给你两个字符串A,B从A中取出K个不重合子串(顺序与在A中顺序相同)组成B,问有多少种方案? Solution 话说重打还是出各种错误也是醉了 先看题目,因为答案与A串,B串和 ...

  9. Android系统移植与调试之------->如何修改Android设备添加3G上网功能

    1.首先先来看一下修改前后的效果对比图 step1.插上3G设备前 step2.插上3G设备后,获取信号中.... step3.插上3G设备后,获取到信号 step4.使用3G信号浏览网页 2.下面讲 ...

  10. GTK+重拾--07 GTK+中的事件

    (一):写在前面 在这一个小节中,我们主要是学习GTK+2.0中最重要的部分.就是信号和事件.GTK+函数工具库是基于"事件"系统的.全部的GUI应用都是基于"事件&qu ...