【前言】

上一篇完成了Asp.Net Core 2.2项目的建立,解释了一番项目结构,这一篇开始动手写个小功能,从Controller-Action-Model-View,完成前后端最基础的交互过程,一起来试试最简单的MVC开发吧!这个可能有一些小坑。

1【Model】

Model是为了数据的传递而定义的实体类,这个对小伙伴儿们应该是非常熟练了,这里Eleven就简单定义一个CurrentUser类。

2【控制器】

项目的基本结构就是Controllers-Models-Views,先从控制器开始。这里右键的时候,没有那个直接添加控制器的选项了,只能添加新建项,然后选择控制器类。

得到的东西很眼熟,跟以前的差别就是Action的返回值从ActionResult换成了IActionResult,其实也没啥变化了。下面将分别尝试几种MVC前后台传值方式:

1 ViewData字典传值

2 ViewBag动态类型传值

 

3 TempData字典传值(基于session保存的)

 

4 model传值

3【视图】

这里的视图文件不会自动创建了,需要我们手动去Views下面,创建First文件夹,然后添加新建项,选择Razor视图。创建的cshtml,也是支持Razor语法,使用方式跟MVC5完全一致。

浏览一下,发现数据就都绑定成功了。挺轻松的就完成了数据从后台传递到界面然后进行绑定的过程了,SoEasy!这里跟之前的MVC是一致的,几乎没有什么区别!为什么说是几乎呢,小伙伴儿们可以自己试试,将页面后台跳转一下,会发现一个奇怪的问题,就是那个TempData也失效了。但是在MVC年代,TempData在后台跳转是可以保存数据的,因为是存在Session里面的,在Core里面,默认Session是没有的,如果需要使用Session,需要在Startup的两个方法里面分别配置才行的。这里就不演示了,后文还会继续!

【结语】

Asp.Net Core的第一个简单功能,我们轻松完成了数据的后台传递到前端并完成绑定,还是熟悉的传值,还是熟悉的绑定!但是其中也会埋下一些小坑,在后续的开发过程中,我们将陆续遇到并解决掉。看完这篇文章,大家对迁移以前的MVC项目到Core里面,是不是更有信心了?其实也没这么简单,下一篇文章中,Eleven将带大家去分析框架和扩展订制了!欢迎关注公众号,欢迎讨论,欢迎转发,愿天下有需求的人都能看到!

作者:Eleven

来源:公众号【软谋net】

想了解更多干货,欢迎关注公众号【程序员在职场】

程序员在职场

【2】Asp.Net Core2.2第一个功能增加的更多相关文章

  1. ASP.NET Core2基于RabbitMQ对Web前端实现推送功能

    在我们很多的Web应用中会遇到需要从后端将指定的数据或消息实时推送到前端,通常的做法是前端写个脚本定时到后端获取,或者借助WebSocket技术实现前后端实时通讯.因定时刷新的方法弊端很多(已不再采用 ...

  2. 【3】Asp.Net Core2.2新版管道处理模型

    [前言] 上一篇完成了Asp.Net Core 2.2项目的一个最简单功能的添加,从控制器-视图-实体轻松交互了一下,感觉跟之前的MVC没啥差别!但这些都是在组件封装的基础上完成的,在Core里面,其 ...

  3. 在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制

    Swashbuckle.AspNetCore3.0 介绍 一个使用 ASP.NET Core 构建的 API 的 Swagger 工具.直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探 ...

  4. 【1】Asp.Net Core2.2从环境配置到应用建立

    作者:Eleven 来源:公众号[软谋net] [前言] .Net Core开源&跨平台,已经肉眼可见将成为.Net平台的未来,在企业招聘需求上已经频频见到,接触到很多公司内部都已经开始尝试C ...

  5. ASP.Net Core2.1中的HttpClientFactory系列一:HttpClient的缺陷

    引言: ASP.NET Core2.1 中出现了一个新的 HttpClientFactory 功能, 它有助于解决开发人员在使用 HttpClient 实例从其应用程序中访问外部 web 资源时可能遇 ...

  6. 【翻译】asp.net core2.1认证和授权解密

    asp.net core2.1认证和授权解密 本篇文章翻译自:https://digitalmccullough.com/posts/aspnetcore-auth-system-demystifie ...

  7. ASP.NET Core2读写InfluxDB时序数据库

    在我们很多应用中会遇到有一种基于一系列时间的数据需要处理,通过时间的顺序可以将这些数据点连成线,再通过数据统计后可以做成多纬度的报表,也可通过机器学习来实现数据的预测告警.而时序数据库就是用于存放管理 ...

  8. asp.net core2.1认证和授权解密

    来源:https://www.cnblogs.com/pangjianxin/p/9372562.html asp.net core2.1认证和授权解密 本篇文章翻译自:https://digital ...

  9. Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter

    由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现a ...

随机推荐

  1. const和static readonly的区别

    我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等. 在多数情况下可以混用.二者本质的区别在于,const的值是在编译期间确定的,因此只能在 ...

  2. python 将os.getcwd()获取路径中的\替换成\\

    通过os.getcwd()获取的路径为:D:\Auto\test\mobule,实际需要修改为:D://Auto//test//mobule 代码实现如下: import osb = os.getcw ...

  3. 深度学习之Batch Normalization

    在机器学习领域中,有一个重要的假设:独立同分布假设,也就是假设训练数据和测试数据是满足相同分布的,否则在训练集上学习到的模型在测试集上的表现会比较差.而在深层神经网络的训练中,当中间神经层的前一层参数 ...

  4. MediatR 知多少

    引言 首先不用查字典了,词典查无此词.猜测是作者笔误将Mediator写成MediatR了.废话少说,转入正题. 先来简单了解下这个开源项目MediatR(作者Jimmy Bogard,也是开源项目A ...

  5. tday02 上节课复习

    什么是编程语言 人与计算机交流的介质 编程是什么东西 写出一个一个文件,然后一个文件的集合就是一个程序 为什么要编程 在计算机上写一个程序实现某种功能,取代劳动力 计算机的五大组成 我们人类最重要的组 ...

  6. nodejs操作redis总结

    本文总结常见的使用node操作redis服务,redis的key是唯一的,如果一个key所对应的存储类型是string,则不能再次覆盖式设置key为hash; 1. 启动redis 这里我们使用doc ...

  7. css中margin为负数的深入研究

    注:以下实验的元素均为块级元素,inline-block和inline本身对margin某些方向上都是无效的,所以这里不予讨论. margin-left或者margin-right为负数 当块元素wi ...

  8. PageHelper分页异常(java.base/java.util.ArrayList cannot be cast to com.github.pagehelper.Page)

    在SqlMapConfig.xml里面配置分页插件 applicationContext-service.xml里面的配置,我出现问题谁因为,在salSessionFactory里没注入全局配置文件

  9. 项目分层-----MVC

    MVC设计模式:modle层,view层,controller层 以前学习的servlet其实就是一个java类,或者说经过规范的java类,实际进行跳转时,还是要在web.xml文件中配置才能正常跳 ...

  10. JS,JQ 格式化小数位数

    在<script>中: $(function(){ var num=$(".price").length;/*获取应用了class="price"的 ...