为了账号安全,请及时绑定邮箱和手机立即绑定

打造你的第一个ASP.NET Core MVC网站应用

难度中级
时长 4小时10分
学习人数
综合评分9.50
36人评价 查看评价
9.8 内容实用
8.9 简洁易懂
9.8 逻辑清晰
  • 为何不注入实现 要注入接口的
    查看全部
  • 为什么实现以后 还需要services.AddTransient()
    查看全部
  • 学习路线!!!

    查看全部
    0 采集 收起 来源:课程总结

    2021-01-27

  • 全部笔记:

    start up :项目运行配置 管理依赖注入 中间间(configure-》Middelware) 以及处理请求通道(由IApplicationBuilder类创 建)

    Program.cs-》

    CreateDefaultDuilder(args)->1.加载主机和应用得配置信息

    2.配置日志记录

    3.设置web服务器

    4.设置asp.net core的应用形式

    Asp.net MVC routing系统

     1.无需文件真正保存在硬盘上

    2.访问文件无需后缀

    3.URL结构与服务器文件夹结构无关

    4.url将会被映射给Controller控制器来处理请求,不会映射给静态文件

    http请求交给服务器-》controller来进行活动 之后再有controller响应http请求

    URL:{域名}/Controller/Action

    具体信息又分段路由segments(自定义路由)来处理

    URL:{域名}/Controller/Action/{id}->action 函数的参数来进行页面处理获得数据输出 

    如何定义URL和Controller之间的映射规则?

    默认路由系统。 app.UseMvcWithDefaultRoute();

    {域名}/{Controller=Home}/{Action=index}/{Value?}

    自定义默认路由:

    使用中间件:

    app.UseMvc(routes=>routes.MapRoute(name:"default",template:"{controller=Home}/{Action=index}/{Value?}"))

    ==app.UseMvcWithDefaultRoute();

    在ASP.Net Mvc有两种路由模式

    1.传统路由(使用路由表) Concentional routing

    2.特性注释路由 Attribute routing 

    Conventional Routing 

    1.URl 被分解为Controller和action两个部分 

    2.使用路由表(routing table )来设置路由规则

    例如:rotes.MapRoute(name:"default",templete:"{controller=Home}/{action=index}")

    Atrtibute Routing:

    1.使用简单,不再需要路由表,只要controller和action代码中直接使用

    attribute来定义路由

    Example:

    [Route("[controller]/[action]")]

    public class HomeController:Controller

    {

    //get :/<controller>/

    public Stirng Index()

    {

    return "Hello From Home";

    }

    }

    路由中间件:帮助我们解析URL,并映射给相对应得controller和action

     //

    Attribute Routing :

    可以帮助我们用AOP 面向面向切面得形式可以为每一个controller甚至action

    单独定义路由。Route("[controller]/[index]")

    //

    app.UseMvc(传入lamda表达式来设定自定义路由)

    什么是MVC:

    1.软件工程的架构方式

    2.模型,视图和控制器

    3.分离业务操作,数据显示,逻辑控制 


    视图:用户交互界面 展示输入,不操作数据,接受用户数据

    模型:MVC架构得核心,表示业务模型或者数据模型,程序的业务逻辑。

    如:算法的实现,数据的管理,输出对象的封装等等

    控制器:接受用户得输入,并调用模型和视图去完成用户的请求处理

    本身不处理数据

    三层架构:

    UI层 BLL 业务逻辑层,处理核心业务以及数据封装

    DAL 表示数据访问 

    三层架构面向结构编程,而三个层级之间的完全解耦,完全可替代

    MVC得每个部分都是紧密结合的,它的核心并不是解耦,而是重用。


    MVC的优点:

    耦合性低

    可复用性高

    可维护性高

    缺点:

    定义不明确,学习曲线陡

    结构复杂

    数据流动效率低 

    ----控制器的工作原理--

    Action 函数:

    处理请求

    返回特殊乐星IActionResult

    默认http请求方式为Get

    可接受url中的参数

    Action:Post

    如何处理POST请求:

    [HttpPost]

    public ActionResult Edit(int id,IFormCollection collection)

    {

    try

    {

      return RedirectionToAction(nameof(Index));  

    }

    catch

    {

      return View();

    }

    }

    什么是模型?

    1.其实是一个类 映射数据库,对象化数据。

    2.获取数据,更新数据,传递数据,保存数据等

    3.处理业务逻辑,被视为BLL层

    4.View Model与视图数据绑定

    不过,定义不明确,经验很重要

    可以是一个简单的poco类 也可以是一复杂的充血性领域模型(rich Domain Model)

    模型的业务逻辑:

    函数方法等,不会映射数据库,但会对数据进行更新。

    举例:

    模型属性:

    public int Id{get;set;}

    public string FirstName{get;set;}

    public string UserName{get;set;}

    public string ShortDescription{get;set;}

    public decimal Phone{get;set;}

    public string Email{get;set;}

    public bool IsEmailConfirm{get;set;}

    业务逻辑:

    public void ConfirmEmail(string token)

    {

    if(isTokenValid)

    {

    this.IsEmailConfirm=true;//save to database

    }

    }

    数据持久化模式:repository仓库模式

    对象化数据,不用管数据是怎么保存的

    使用仓库接口

    举例:

    public interface INoodleRespositoy

    {

      IEnumerable<Noodle> GetNoodles();

     Noodle GetNoodleById(int ID);

    }

    使用模型和数据仓库的好处:

    1.业务逻辑与数据模型紧密耦合,减少分层,降低代码数量

    2.完全剥离数据库业务,程序员可以更专注于实现业务逻辑

    3.面向对象编程,数据转化为对象,更符合程序员的思考方式

    视图模型 ViewModel

    ViewModel中的数据会与UI界面双向绑定,一旦ViewModel

    中的数据发生任何变化,结果都会立即反应在UI界面中。

    特点:

    1.依然是模型 

    2.用视图模型替代数据上下文

    3.poco(plain old class object),不包含方法的简单类

     MVVM:model-view-view Model

    为什么要使用ViewModel

    1.减少页面逻辑的复杂度

    2.处理页面的数据逻辑,管理页面状态

    3.各种组件也可以相对解耦,既有利于团队协作与日后维护

    管理前端框架工具:

    项目名称(右击)-》client-site Library-》libman

    Asp.Net Core Identity 

    1.Password Hashing 

    2.Tokenization

    3.TwoFacts Authentication

    4.Authentication

    5.Authorization

    6.External Login 第三方验证 


    查看全部
    0 采集 收起 来源:课程总结

    采集自:Sette 2021-01-22

  • 只有预先完成项目构建,entityframework才能在数据库上下文中找到各种模型的引用。

    查看全部
  • 全部笔记:

    start up :项目运行配置 管理依赖注入 中间间(configure-》Middelware) 以及处理请求通道(由IApplicationBuilder类创 建)

    Program.cs-》

    CreateDefaultDuilder(args)->1.加载主机和应用得配置信息

    2.配置日志记录

    3.设置web服务器

    4.设置asp.net core的应用形式

    Asp.net MVC routing系统

     1.无需文件真正保存在硬盘上

    2.访问文件无需后缀

    3.URL结构与服务器文件夹结构无关

    4.url将会被映射给Controller控制器来处理请求,不会映射给静态文件

    http请求交给服务器-》controller来进行活动 之后再有controller响应http请求

    URL:{域名}/Controller/Action

    具体信息又分段路由segments(自定义路由)来处理

    URL:{域名}/Controller/Action/{id}->action 函数的参数来进行页面处理获得数据输出 

    如何定义URL和Controller之间的映射规则?

    默认路由系统。 app.UseMvcWithDefaultRoute();

    {域名}/{Controller=Home}/{Action=index}/{Value?}

    自定义默认路由:

    使用中间件:

    app.UseMvc(routes=>routes.MapRoute(name:"default",template:"{controller=Home}/{Action=index}/{Value?}"))

    ==app.UseMvcWithDefaultRoute();

    在ASP.Net Mvc有两种路由模式

    1.传统路由(使用路由表) Concentional routing

    2.特性注释路由 Attribute routing 

    Conventional Routing 

    1.URl 被分解为Controller和action两个部分 

    2.使用路由表(routing table )来设置路由规则

    例如:rotes.MapRoute(name:"default",templete:"{controller=Home}/{action=index}")

    Atrtibute Routing:

    1.使用简单,不再需要路由表,只要controller和action代码中直接使用

    attribute来定义路由

    Example:

    [Route("[controller]/[action]")]

    public class HomeController:Controller

    {

    //get :/<controller>/

    public Stirng Index()

    {

    return "Hello From Home";

    }

    }

    路由中间件:帮助我们解析URL,并映射给相对应得controller和action

     //

    Attribute Routing :

    可以帮助我们用AOP 面向面向切面得形式可以为每一个controller甚至action

    单独定义路由。Route("[controller]/[index]")

    //

    app.UseMvc(传入lamda表达式来设定自定义路由)

    什么是MVC:

    1.软件工程的架构方式

    2.模型,视图和控制器

    3.分离业务操作,数据显示,逻辑控制 


    视图:用户交互界面 展示输入,不操作数据,接受用户数据

    模型:MVC架构得核心,表示业务模型或者数据模型,程序的业务逻辑。

    如:算法的实现,数据的管理,输出对象的封装等等

    控制器:接受用户得输入,并调用模型和视图去完成用户的请求处理

    本身不处理数据

    三层架构:

    UI层 BLL 业务逻辑层,处理核心业务以及数据封装

    DAL 表示数据访问 

    三层架构面向结构编程,而三个层级之间的完全解耦,完全可替代

    MVC得每个部分都是紧密结合的,它的核心并不是解耦,而是重用。


    MVC的优点:

    耦合性低

    可复用性高

    可维护性高

    缺点:

    定义不明确,学习曲线陡

    结构复杂

    数据流动效率低 

    ----控制器的工作原理--

    Action 函数:

    处理请求

    返回特殊乐星IActionResult

    默认http请求方式为Get

    可接受url中的参数

    Action:Post

    如何处理POST请求:

    [HttpPost]

    public ActionResult Edit(int id,IFormCollection collection)

    {

    try

    {

      return RedirectionToAction(nameof(Index));  

    }

    catch

    {

      return View();

    }

    }

    什么是模型?

    1.其实是一个类 映射数据库,对象化数据。

    2.获取数据,更新数据,传递数据,保存数据等

    3.处理业务逻辑,被视为BLL层

    4.View Model与视图数据绑定

    不过,定义不明确,经验很重要

    可以是一个简单的poco类 也可以是一复杂的充血性领域模型(rich Domain Model)

    模型的业务逻辑:

    函数方法等,不会映射数据库,但会对数据进行更新。

    举例:

    模型属性:

    public int Id{get;set;}

    public string FirstName{get;set;}

    public string UserName{get;set;}

    public string ShortDescription{get;set;}

    public decimal Phone{get;set;}

    public string Email{get;set;}

    public bool IsEmailConfirm{get;set;}

    业务逻辑:

    public void ConfirmEmail(string token)

    {

    if(isTokenValid)

    {

    this.IsEmailConfirm=true;//save to database

    }

    }

    数据持久化模式:repository仓库模式

    对象化数据,不用管数据是怎么保存的

    使用仓库接口

    举例:

    public interface INoodleRespositoy

    {

      IEnumerable<Noodle> GetNoodles();

     Noodle GetNoodleById(int ID);

    }

    使用模型和数据仓库的好处:

    1.业务逻辑与数据模型紧密耦合,减少分层,降低代码数量

    2.完全剥离数据库业务,程序员可以更专注于实现业务逻辑

    3.面向对象编程,数据转化为对象,更符合程序员的思考方式

    视图模型 ViewModel

    ViewModel中的数据会与UI界面双向绑定,一旦ViewModel

    中的数据发生任何变化,结果都会立即反应在UI界面中。

    特点:

    1.依然是模型 

    2.用视图模型替代数据上下文

    3.poco(plain old class object),不包含方法的简单类

     MVVM:model-view-view Model

    为什么要使用ViewModel

    1.减少页面逻辑的复杂度

    2.处理页面的数据逻辑,管理页面状态

    3.各种组件也可以相对解耦,既有利于团队协作与日后维护

    管理前端框架工具:

    项目名称(右击)-》client-site Library-》libman

    Asp.Net Core Identity 

    1.Password Hashing 

    2.Tokenization

    3.TwoFacts Authentication

    4.Authentication

    5.Authorization

    6.External Login 第三方验证 


    查看全部
    4 采集 收起 来源:课程总结

    采集自:Sette 2020-12-22

  • vs合理管理前台css js的代码。

    http://img4.mukewang.com/5fdd7752000180e913160582.jpg

    http://img.mukewang.com/5fdd776500018fb506870394.jpg

    http://img.mukewang.com/5fdd778a00016b8607480475.jpg

    必须在wwwroot/下面,很重要

    http://img2.mukewang.com/5fdd77de000197aa05950389.jpg




    查看全部
  • 修改网页视图

    http://img4.mukewang.com/5fdd69b000019c6812640592.jpg


    查看全部
    0 采集 收起 来源:View Model

    2020-12-19

  • 在主页中绑定两个视图的内容。需要创建veiwModels文件夹

    并把两个数据放在一个类中。

    http://img4.mukewang.com/5fdd67c200010ad412860605.jpg

    在homeController.cs中引用using LanzhouBeefNoodles.ViewModels

    http://img.mukewang.com/5fdd68290001d16812770560.jpg

    修改构造函数把评价引入

    http://img4.mukewang.com/5fdd687b0001749b10320601.jpg

    修改index

    http://img1.mukewang.com/5fdd68e2000195b410450566.jpg

    修改为 View(viewModle);

    http://img4.mukewang.com/5fdd692200011d2e08650494.jpg








    查看全部
    0 采集 收起 来源:View Model

    2020-12-19

  • 视图模型view Model

    http://img.mukewang.com/5fdd63fe000153e911270508.jpg


    http://img1.mukewang.com/5fdd645400018db811430667.jpg



    查看全部
  • 在视图中指定所使用的模型

    http://img1.mukewang.com/5fdd63640001ac1309200542.jpg

    查看全部
  • 数据与页网绑定

    http://img2.mukewang.com/5fdd63020001bcd210180537.jpg

    查看全部
  • 通过Controller的构造函数中引用依赖

    http://img2.mukewang.com/5fdd62ba0001480109900535.jpg

    查看全部
  • 在项目的不同位置需要使用它,则需要注入服务依赖

    http://img4.mukewang.com/5fdd61a90001c7f210800584.jpg

    查看全部
  • 用view(),映射view

    http://img3.mukewang.com/5fdd5c7d0001850911710590.jpg

    http://img.mukewang.com/5fdd5c8700019eb612700604.jpg

    查看全部
  • 反回类型为ActionResult.自动根据数据类型自动进行转换


    并用Content("");返回

    http://img4.mukewang.com/5fdd5a1e0001cd2f07850465.jpg


    查看全部
  • 让一个类变成Controller的方式

    1. 直接在类名后面加上Controller

    2. 在类前面加上[Controller]

    http://img.mukewang.com/5fdd584d0001a7dd08440614.jpg

    3.继承基类 Controller

    http://img.mukewang.com/5fdd58820001fa2907510494.jpg

    查看全部
  • 需要POST请求

    http://img4.mukewang.com/5fdd57090001c48710780640.jpg


    查看全部
    0 采集 收起 来源:什么是控制器

    2020-12-19

  • 在startup中自定义路由

    http://img1.mukewang.com/5fdd56d00001ac5410200481.jpg

    定义特殊的路由

    http://img2.mukewang.com/5fdd56e60001dddb09610529.jpg


    查看全部
    0 采集 收起 来源:什么是控制器

    2020-12-19

  • 两种路由映射模式

    http://img3.mukewang.com/5fdd4ee1000148e410890557.jpg

    http://img1.mukewang.com/5fdd4f0e000184cd10930668.jpg

    http://img.mukewang.com/5fdd4f340001865d11320685.jpg


    http://img.mukewang.com/5fdd50560001180209000571.jpg

    查看全部
    0 采集 收起 来源:Demo 添加路由

    2020-12-19

  • 自定义默认路由

    http://img4.mukewang.com/5fdd4e910001ac3112440615.jpg

    查看全部
    0 采集 收起 来源:深入理解路由

    2020-12-19

  • add-migration xxx

    update-database

    查看全部
  • 中间件 app.UseMvcWithDefaultRoute()

    查看全部
    0 采集 收起 来源:深入理解路由

    2020-11-12

  • 1.wwwroot 网站的根目录 自动被服务器与域名进行映射

    查看全部
    0 采集 收起 来源:深入理解路由

    2020-11-12

    1. 映射必须保存在服务器中

    2. url路径一致

    查看全部
    0 采集 收起 来源:深入理解路由

    2020-11-12

  • 服务器请求文件, 映射, 返回 http 文件

    查看全部
    0 采集 收起 来源:深入理解路由

    2020-11-12

    1. 请求通道都是由IApplicationBuilder 创建

    2. 每个中间件都可以截获,修改,传递请求对象,输出响应对象

    3. 中间件可以短路处理,直接向前端输出响应对象

      所有中间件公用一个请求通道

    查看全部
    0 采集 收起 来源:program与 startup

    2020-11-12

  • startup.cs:依赖注入 中间件 middleware 请求通道 request pipeline

    program.cs : mian function, 入口

    WebHost - 

    CreateDefaultBuilder : 1. 加载主机配置信息

     2. 配置日志记录 

    3. 设置web 服务器 

    4. 设置asp.net core 应用程序托管


    Startup: 1.在ConfigureServices 注入服务组件依赖

    services.AddMvc();

    2. 在configure 方法中创建中间件,设置请求通道


    request pipline: 访问网站(Http 请求)

    1. 检查&处理http请求(登录,Url 正确,访问出错抛出异常)

    2. 交由中间件处理

    中间件:组装到程序管道中用来处理请求和响应的软件

    查看全部
    0 采集 收起 来源:program与 startup

    2020-11-12

  • 开发思维,代码过程,设计模式,系统架构

    查看全部
首页上一页123456下一页尾页

举报

0/150
提交
取消
课程须知
1. 有一定C#基础 2. 熟悉前端开发技术(HTML、CSS、Javascript)
老师告诉你能学到什么?
1. 深入理解ASP .NET MVC 2. 理解mvc的路由系统 3. 建立数据模型 4. 学会依赖注入 5. 深入理解页面语言Razor 6. 使用Entity Framework Core持久化数据 7. 使用ASP .NET MVC来创建网站应用。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!